tt.chooseMedia
收藏我的收藏
基础库 2.41.0 开始支持本方法,低版本需做兼容处理,这是一个异步方法。
调用该 API 拍摄或从手机相册中选择图片或视频。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 媒体类型为 video 时,Android 仅支持 mov 和 mp4 格式,iOS 不限制 video 格式,但是 iOS 低端机型对像素有兼容问题,建议使用 4K 以下分辨率文件。 |
支持沙盒 | 否 |
相关教程 | 无 |
语法
tt.chooseMedia(options)
参数说明
options 为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
camera | enum | 'back' | 否 | 仅在 sourceType 为 camera 时生效,'front' 使用前置摄像头,'back' 使用后置摄像头,Android 暂不支持拉起前置摄像头 | 2.41.0 |
count | number | 9 | 否 | 最多可以选择的文件个数,不能超过 20。 | 2.41.0 |
mediaType | Array<string> | ["image", "video"] | 否 | 支持的媒体类型 | 2.41.0 |
sourceType | Array<string> | ["album", "camera"] | 否 | 图片和视频选择的来源 | 2.41.0 |
maxDuration | number | 10 | 否 | 录制视频的最大时长,单位秒。时间范围为 3s 至 60s 之间(传入时间范围不符合规范则设置为默认值)。从相册选择的视频无时长限制。 | 2.41.0 |
sizeType | Array<string> | 否 | 仅对 mediaType 为 image 时有效,是否压缩所选文件,默认压缩 | 2.41.0 | |
success | function | 否 | 接口调用成功的回调函数 | 2.41.0 | |
fail | function | 否 | 接口调用失败的回调函数 | 2.41.0 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 2.41.0 |
mediaType 参数说明
值 | 说明 | 最低支持版本 |
['image'] | 只能拍摄图片或从相册选择图片 | 2.41.0 |
['video'] | 只能录制视频或从相册选择视频 | 2.41.0 |
['image', 'video'] | 支持图片或视频 | 2.41.0 |
sourceType 参数说明
值 | 说明 | 最低支持版本 |
['album'] | 从相册选择 | 2.41.0 |
['camera'] | 使用相机拍摄 | 2.41.0 |
['album', 'camera'] | 从相册选择或使用相机拍摄 | 2.41.0 |
sizeType 参数说明
值 | 说明 | 最低支持版本 |
['original'] | 原图 | 2.41.0 |
['compressed'] | 压缩系数 0.75 的图片 | 2.41.0 |
camera 的合法值
值 | 说明 | 最低支持版本 |
---|---|---|
front | 使用前置摄像头 | 2.41.0 |
back | 使用后置摄像头 | 2.41.0 |
回调成功
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
tempFiles | array | 本地临时文件列表 | 2.41.0 |
errMsg | string | "chooseMedia:ok" | 2.41.0 |
tempFiles 类型说明
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
tempFilePath | string | 本地临时文件路径 (本地路径) | 2.41.0 |
size | number | 本地临时文件大小,单位 B | 2.41.0 |
mediaType | string | 媒体类型。(image/video) | 2.41.0 |
duration | number | 视频的时间长度(文件类型是视频时才返回) | 2.41.0 |
height | number | 视频的高度(文件类型是视频时才返回,视频太短无法返回) | 2.41.0 |
width | number | 视频的宽度(文件类型是视频时才返回,视频太短无法返回) | 2.41.0 |
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "chooseMedia:fail" + 详细错误信息 | 2.41.0 |
错误码
errorCode | errMsg | errorType | 说明 | 最低支持版本 |
---|---|---|---|---|
113395 | chooseMedia:fail cancel | U | 用户取消 用户取消,不需要特殊处理 | 2.41.0 |
113390 | chooseMedia:fail auth deny | U | 用户拒绝授权小程序权限 用户未授予小程序授权,请引导用户按需授权,详情参考 用户授权 | 2.41.0 |
113386 | chooseMedia:fail cannot be called frequently | D | 开发者错误 该能力有调用频率限制,请勿频繁调用该能力 | 2.41.0 |
113389 | chooseMedia:fail system auth deny | U | 用户错误 用户未授予系统权限,请引导用户按需授权 | 2.41.0 |
113391 | chooseMedia:fail Internal error xxx | F | 小程序框架内部错误,有需要请拉客服咨询 小程序框架异常,请创建工单反馈,会有专人协助您解决问题 | 2.41.0 |
113399 | chooseMedia:fail the value of params.maxDuration should be greater than or equal to 3 | D | 参数校验错误 检查入参 | 2.41.0 |
113379 | chooseMedia:fail api scope is not declared in the privacy agreement | D | 隐私能力不在申请的 scope 内 检查隐私协议 | 2.41.0 |
113380 | chooseMedia:fail privacy permission is not authorized | U | 隐私协议未授权 用户未授权隐私协议,请引导用户按需授权 | 2.41.0 |
113392 | chooseMedia:fail native exception | F | 小程序框架内部错误,有需要请拉客服咨询 小程序框架异常,请创建工单反馈,会有专人协助您解决问题 | 2.41.0 |
扫码体验
请使用字节宿主APP扫码
代码示例
tt.chooseMedia({ count: 9, mediaType: ["image", "video"], sourceType: ["album", "camera"], sizeType: ["original"], maxDuration: 30, camera: "back", success(res) { console.log(res.tempFiles.tempFilePath); console.log(res.tempFiles.size); }, });