uni.chooseMedia({
count,
mediaType: ['mix'], // 支持图片和视频
sourceType: ['album'], // 可以选择相册
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
maxDuration: 60, // 视频最大时长
success: (res) => handleMediaUpload(res, compress, resolve, reject),
fail: (err) => reject(err),
})

- 发布:2025-07-07 17:25
- 更新:2025-07-23 10:31
- 阅读:742
【报Bug】安卓uni.chooseMedia 设置 sourceType为 ['camera'], mediaType为['image', 'video'] 选择选择视频后返回的文件路径有问题
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macOs 14.7.2
HBuilderX类型: 正式
HBuilderX版本号: 4.65
手机系统: Android
手机系统版本号: Android 15
手机厂商: OPPO
手机机型: FINDX 7
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
uni.chooseMedia({
count,
mediaType: ['mix'], // 支持图片和视频
sourceType: ['album'], // 可以选择相册
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
maxDuration: 60, // 视频最大时长
success: (res) => handleMediaUpload(res, compress, resolve, reject),
fail: (err) => reject(err),
}) 在安卓13以上中选择视频
uni.chooseMedia({
count,
mediaType: ['mix'], // 支持图片和视频
sourceType: ['album'], // 可以选择相册
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
maxDuration: 60, // 视频最大时长
success: (res) => handleMediaUpload(res, compress, resolve, reject),
fail: (err) => reject(err),
}) 在安卓13以上中选择视频
预期结果:
返回以file:// 开头的临时路径
返回以file:// 开头的临时路径
实际结果:
返回以content:// 开头的协议路径
返回以content:// 开头的协议路径
bug描述:
安卓uni.chooseMedia 设置 sourceType为 ['camera'], mediaType为['image', 'video'] 选择选择视频后返回的tempFilePath为content://media/picker/0/com.android.providers.media.photopicker/media/xxxxxx Android 中的 Content URI,用于不了上传,不借助原生插件也转不了临时路径
等下班 (作者)
我现在还需要本地使用uni.compressVideo压缩视频,还有个问题是这样怎么拿到文件类型后缀呢?
2025-07-08 11:23
DCloud_Android_THB
回复 等下班: 你的意思是compressVideo不支持content://路径? 获取视频信息可以用uni.getVideoInfo
2025-07-08 15:16
等下班 (作者)
回复 DCloud_Android_THB: try {
uni.compressVideo({
src: path,
quality: 'medium',
success: (res) => {
console.log(res, '压缩视频成功')
resolve(res.tempFilePath)
},
fail: (err) => {
console.log(err, '压缩视频失败')
reject(err)
},
complete: () => {
console.log('压缩视频失败')
uni.hideLoading()
},
})
uni.getVideoInfo({
src: path,
success: (res) => {
console.log(res, '获取视频信息成功')
},
fail: (err) => {
console.log(err, '获取视频信息失败')
},
})
} catch (error) {
console.log(error, '压缩视频异常')
} 使用uni.compressVideo一直在pending中 不会进成功失败回调。 使用uni.getVideoInfo 报错{"errMsg":"getVideoInfo:fail targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!具体请看:https://ask.dcloud.net.cn/article/36199","code":15}
2025-07-08 16:07
DCloud_Android_zl
回复 等下班: 好的,我这边看一下
2025-07-08 17:04
等下班 (作者)
回复 DCloud_Android_zl: 这个问题有结论了吗?
2025-07-15 16:56
d***@163.com
回复 等下班: 你好,这个问题解决了吗?
2025-07-17 10:35
等下班 (作者)
回复 d***@163.com: 没回复了
2025-07-17 16:13