拍摄或从手机相册中选择图片或视频。
注意事项
- iOS SDK 版本需要 ≥ 1.0.18
- Android SDK 版本需要 ≥ 1.0.10
- 使用该接口能力之前,需在微信开发者工具
project.miniapp.json
中勾选「Media SDK 」和「video SDK」(即 如果是iOS,且 iOS >=1.3.11 则还需要额外勾选「video SDK」)
- 使用该接口能力之前,需在微信开发者工具
project.miniapp.json
中配置「隐私信息访问许可描述」的相册读取、摄像头以及麦克风的许可描述。即,该接口需获得相册读取、摄像头以及麦克风权限才可以调用。
- 补充:如果 Android 的 targetsdkversion 配了 33 及以上需在 project.miniapp.json 中新增下方这三个权限描述(如果你的开发者工具打开后没有下方三个配置,请将开发者工具升级到最新的 nightly 版)
参数
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
---|
| count | number | 9 | 否 | 最多可以选择的文件个数,基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件 |
| mediaType | Array.<string> | ['image', 'video'] | 否 | 文件类型 |
| 合法值 | 说明 |
---|
image | 只能拍摄图片或从相册选择图片 | video | 只能拍摄视频或从相册选择视频 | mix | 可以出现视频和图片,但是不可以同时选视频和图片 |
|
| sourceType | Array.<string> | ['album', 'camera'] | 否 | 图片和视频选择的来源 |
| 合法值 | 说明 |
---|
album | 从相册选择 | camera | 使用相机拍摄 |
|
| maxDuration | number | 10 | 否 | 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。 |
| sizeType | Array.<string> | ['original', 'compressed'] | 否 | 是否压缩所选文件,仅对 mediaType 为 image 时有效 |
| camera | string | 'back' | 否 | 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头 |
| 合法值 | 说明 |
---|
back | 使用后置摄像头 | front | 使用前置摄像头 |
|
| success | function | | 否 | 接口调用成功的回调函数 |
| fail | function | | 否 | 接口调用失败的回调函数 |
| complete | function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
| 属性 | 类型 | 说明 |
---|
| tempFiles | Array.<Object> | 本地临时文件列表 |
| | 结构属性 | 类型 | 说明 |
---|
| tempFilePath | string | 本地临时文件路径 (本地路径) | | size | number | 本地临时文件大小,单位 B | | duration | number | 视频的时间长度 | | height | number | 视频的高度 | | width | number | 视频的宽度 | | thumbTempFilePath | string | 视频缩略图临时文件路径 | | fileType | string | 文件类型 | | |
|
| type | string | 文件类型,有效值有 image 、video、mix |
示例代码
wx.chooseMedia({
count: 9,
mediaType: ['image','video'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success(res) {
console.log(res.tempFiles[0].tempFilePath)
console.log(res.tempFiles[0].size)
}
})