tt.chooseMedia
收藏
我的收藏

基础库 2.41.0 开始支持本方法,低版本需做兼容处理,这是一个异步方法。

调用该 API 拍摄或从手机相册中选择图片或视频。

前提条件
业务背景
使用限制
注意事项

媒体类型为 video 时,Android 仅支持 mov 和 mp4 格式,iOS 不限制 video 格式,但是 iOS 低端机型对像素有兼容问题,建议使用 4K 以下分辨率文件。

支持沙盒
相关教程

语法

tt.chooseMedia(options)

参数说明

options 为 object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
cameraenum'back'
仅在 sourceType 为 camera 时生效,'front' 使用前置摄像头,'back' 使用后置摄像头,Android 暂不支持拉起前置摄像头
2.41.0
countnumber9
最多可以选择的文件个数,不能超过 20。(超过会自动设置为 20)
2.41.0
mediaTypearray["image", "video"]

支持的媒体类型

2.41.0
sourceTypearray["album", "camera"]

图片和视频选择的来源

2.41.0
maxDurationnumber10
录制视频的最大时长,单位秒。时间范围为 3s 至 60s 之间(传入时间范围不符合规范则设置为默认值)。从相册选择的视频无时长限制。
2.41.0
sizeTypearray

仅对 mediaType 为 image 时有效,是否压缩所选文件,默认压缩

2.41.0
successfunction
接口调用成功的回调函数
2.41.0
failfunction
接口调用失败的回调函数
2.41.0
completefunction
接口调用结束的回调函数(调用成功、失败都会执行)
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 类型,属性如下:

属性名类型说明最低支持版本
tempFilesarray
本地临时文件列表
2.41.0
errMsgstring
"chooseMedia:ok"
2.41.0

tempFiles 类型说明

object 类型,属性如下:

属性名类型说明最低支持版本
tempFilePathstring
本地临时文件路径 (本地路径)
2.41.0
sizenumber
本地临时文件大小,单位 B
2.41.0
mediaTypestring
媒体类型。(image/video)
2.41.0
durationnumber
视频的时间长度(文件类型是视频时才返回)
2.41.0
heightnumber
视频的高度(文件类型是视频时才返回,视频太短无法返回)
2.41.0
widthnumber
视频的宽度(文件类型是视频时才返回,视频太短无法返回)
2.41.0

回调失败

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"chooseMedia:fail" + 详细错误信息
2.41.0

错误码

errNoerrMsg说明最低支持版本
10201"chooseMedia:fail privacy permission is not authorized"

用户拒绝隐私协议授权,详见小程序隐私协议开发指南

3.19.0
10202"chooseMedia:fail api scope is not declared in the privacy agreement"

隐私协议中未定义相关隐私信息类型,详见配置隐私协议

3.19.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);
  },
});