# wx.chooseMedia
拍摄或从手机相册中选择图片或视频。
# 注意事项
- iOS SDK 版本需要 ≥ 1.0.18
- Android SDK 版本需要 ≥ 1.0.10
- 使用该接口能力之前,需在微信开发者工具
project.miniapp.json
中勾选「Media SDK 」和「video SDK」(即 如果是iOS,且 iOS >=1.3.11 则还需要额外勾选「video SDK」)
![](https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/img%2Fmelody%2F202409031112530.png)
- 使用该接口能力之前,需在微信开发者工具
project.miniapp.json
中配置「隐私信息访问许可描述」的相册读取、摄像头以及麦克风的许可描述。即,该接口需获得相册读取、摄像头以及麦克风权限才可以调用。
![](https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/img%2Fmelody%2F202308032036438.png)
- 补充:如果 Android 的 targetsdkversion 配了 33 及以上需在 project.miniapp.json 中新增下方这三个权限描述(如果你的开发者工具打开后没有下方三个配置,请将开发者工具升级到最新的 nightly 版)
![](https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/img%2Fmelody%2F202402231741545.png)
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | number | 9 | 否 | 最多可以选择的文件个数,基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件 | |||||||||
mediaType | Array.<string> | ['image', 'video'] | 否 | 文件类型 | |||||||||
| |||||||||||||
sourceType | Array.<string> | ['album', 'camera'] | 否 | 图片和视频选择的来源 | |||||||||
| |||||||||||||
maxDuration | number | 10 | 否 | 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。 | |||||||||
sizeType | Array.<string> | ['original', 'compressed'] | 否 | 是否压缩所选文件,仅对 mediaType 为 image 时有效 | |||||||||
camera | string | 'back' | 否 | 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头 | |||||||||
| |||||||||||||
success | function | 否 | 接口调用成功的回调函数 | ||||||||||
fail | function | 否 | 接口调用失败的回调函数 | ||||||||||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.success 回调函数
# 参数
# Object res
属性 | 类型 | 说明 | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tempFiles | Array.<Object> | 本地临时文件列表 | |||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||
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)
}
})