开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
基础 api
基础
应用级事件
界面
跳转
多媒体
图片
视频
videoconext
音频
录音
lottie 动画
相机
缓存
文件
位置
网络
设备
worker
数据安全
分享
收藏
自定义通用菜单
更新管理
web-view组件控制
升级支付宝最新版本
隐私信息授权
小程序广告
开放能力 api
开发 > api > 基础 api > 多媒体 > 视频 > my.choosevideo
评论 (2)
收藏
我的文档
设置

my.choosevideo(object object)

基础库  或更高版本; 若版本较低,建议采取 兼容处理

主体: 企业支付宝小程序个人支付宝小程序

从本地相册选择视频或使用相机摄像

object object

查看示例

属性 类型 默认值 必填 描述
sourcetype array album,camera

视频选择的来源

枚举值 描述 兼容性
album

从相册选择视频

-
camera

使用相机拍摄视频

-
compressed boolean true

是否压缩所选择的视频文件。在 ios 端即使 compressed 为 false,视频实际也是有压缩的,compressed 仅指定更大压缩级别

maxduration number 60

拍摄视频最长拍摄时间,单位:秒

camera string back

默认拉起的是前置或者后置摄像头。部分 android 手机下由于系统 rom 不支持无法生效

枚举值 描述 兼容性
back

后置

-
front

前置

-
success function -

调用成功的回调函数

fail function -

调用失败的回调函数

complete function -

调用结束的回调函数(调用成功、失败都会执行)

success 回调函数

参数

object res

查看示例

属性 类型 兼容性 描述
filepath string
基础库: 2.4.4

选定视频的本地临时文件路径

duration number -

选定视频的时间长度

size number -

选定视频的数据量大小

height number -

返回选定视频的高度

width number -

返回选定视频的宽度

tempfilepath string
基础库: 1.0/2.4.4

选定视频的本地临时文件路径

fail 回调的参数为 object,error 属性为错误码,errormessage 属性为错误消息。

错误码 错误消息 凯发app官方网站的解决方案
11 用户取消操作。

用户正常交互流程,不需要特殊处理。

14 无摄像头权限

用户没开启系统相机权限,可以调用 my.showauthguide 引导用户开启相关系统权限。

15 没有开启相册权限。/ no permission to read storage.

用户没开启系统相册权限 / 用户没有授权文件和媒体写入权限。
如果为“没有开启相册权限”,可以调用 my.showauthguide 引导用户开启相关系统权限。如果为“no permission to read storage.”,可以调用 my.showtoast 弹出提示,引导用户自行开启相关系统权限。
以上两种凯发app官方网站的解决方案仅供参考,具体逻辑可根据业务场景而定。

16 无麦克风权限

用户没开启系统麦克风权限,可以调用 my.showauthguide 引导用户开启相关系统权限。

21(ios) 视频压缩失败。

请重试。如果频率较高的话,可以尝试重启设备

2001 用户不允许授权。

用户拒绝为当前小程序授权。请在交互中考虑此情况。如有需要,请向用户强调该授权的必要性。

2002 用户拒绝为当前小程序授权,并勾选了“总是保持以上选择”后,再次调用授权接口产生的报错。

如有需要,提醒或引导用户手动授权:小程序右上角胶囊按钮->设置->打开权限开关;或者通过调用 my.opensetting 帮助用户打开设置页面。

2003 用户勾选了不允许授权选项。

如有需要,提醒或引导用户手动授权:小程序右上角胶囊按钮->设置->打开权限开关;或者通过调用 my.opensetting 帮助用户打开设置页面。

my,choosevideo(object object)
检测文件真实类型
success 回调函数参数
fail 回调函数参数
my.choosevideo ({
  // 可以根据您的业务按需选择使用 [‘camera'] 或者 ['album', 'camera']
  sourcetype: ['album'],
  success: function (res) {
    console.log (res);
  },
  fail: function (err) {
    console.log (err);
  },
});
my.choosevideo ({
  success: function (res) {
    console.log ('choosevideo: success', res);
    my.detectfiletype ({
      filepath: res.tempfilepath,
      success (res) {
        console.log ('detectfiletype: success', res);
      },
      fail (err) {
        console.log ('detectfiletype: fail', err);
      },
    });
  },
  fail: function (err) {
    console.log ('choosevideo: fail', err);
  },
});
{
  "apfilepath": "https://resource/6d40daec24957a6788bd285e38ed7b43||64fa859f4e80be942874725e3e26adbe2.video",
  "creationdate": 1683899602000,
  "duration": 3,
  "filepath": "https://resource/6d40daec24957a6788bd285e38ed7b43||64fa859f4e80be942874725e3e26adbe2.video",
  "height": 564,
  "localid": "6d40daec24957a6788bd285e38ed7b43||64fa859f4e80be942874725e3e26adbe2",
  "modifydate": 1684470811000,
  "scene": "album",
  "size": 314861,
  "tempfilepath": "https://resource/6d40daec24957a6788bd285e38ed7b43||64fa859f4e80be942874725e3e26adbe2.video",
  "tempvideothumbpath": "https://resource/64fa859f4e80be942874725e3e26adbe2.image",
  "width": 320
}
{
  "error": 11,
  "errormessage": "用户取消操作",
  "filepath": undefined
}
  • tip

    返回的视频路径文件扩展名并非为文件真实类型,在真机上扩展名是 .video ,在 ide 上扩展名由文件实际类型决定。

            若需判断文件实际扩展名,可使用 [my.detectfiletype](https://opendocs.alipay.com/mini/076dwu?pathhash=c64d1eb5) 进行查询,请以此接口返回结果为准,不过需注意此接口仅限真机调试,可参考上方示例代码。
    
  • bug
    支付宝客户端 10.5.16 版本之前,安卓端 “用户取消操作” 报错错误码为 10,并非 11,请注意兼容。
  • tip
    my.choosevideo 传参 compressed: true 启用压缩视频后安卓端真实文件名不带后缀。注意:本地临时文件路径非真实文件名

q:如何上传用户选择的视频?

a:

可以配合 my.uploadfile 一起使用。

my.choosevideo({
  success(res) {
    console.log("choosevideo", res);
    const path = res.tempfilepath;
    my.uploadfile({
      // 替换成你自己的服务端地址
      url: "https://httpbin.org/post",
      filetype: "video",
      filename: "user-selected-video",
      filepath: path,
      formdata: { extra: "其他信息" },
      success: (res) => {
        console.log("success res", res);
        my.alert({ title: "上传成功" });
      },
      fail: (err) => {
        my.alert({ title: "上传失败", content: json.stringify(err) });
      },
    });
  },
});
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图