uni-app Uni.chooseVideo 报错问题
uni-app Uni.chooseVideo 报错问题
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | macOS14 | HBuilderX |
测试过的手机
- iphone13 pro ios17
- 红米k50U
操作步骤:
uni.chooseVideo({
compressed: false,
success(res) {
console.log(res)
uni.compressVideo({
src:res.tempFilePath,
success(e) {
console.log(e)
}
})
}
})
更多关于uni-app Uni.chooseVideo 报错问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app Uni.chooseVideo 报错问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在使用 uni-app 的 Uni.chooseVideo 方法时,可能会遇到一些报错问题。以下是一些常见的问题及其解决方法:
1. 权限问题
-
报错信息:
"chooseVideo:fail auth deny"或"chooseVideo:fail permission denied" -
原因: 用户拒绝了相机或相册的访问权限。
-
解决方法:
- 确保在
manifest.json中正确配置了权限。 - 在调用
Uni.chooseVideo之前,先检查并请求相关权限。
uni.authorize({ scope: 'scope.camera', success() { uni.chooseVideo({ success(res) { console.log(res.tempFilePath); } }); }, fail() { uni.showToast({ title: '请授权相机权限', icon: 'none' }); } }); - 确保在
2. 文件大小或时长限制
-
报错信息:
"chooseVideo:fail file size exceed"或"chooseVideo:fail duration exceed" -
原因: 选择的视频文件大小或时长超过了限制。
-
解决方法:
- 在
Uni.chooseVideo中设置maxDuration和sizeType参数,限制视频的时长和大小。
uni.chooseVideo({ sourceType: ['album', 'camera'], maxDuration: 60, // 最大时长60秒 sizeType: ['compressed'], // 压缩视频 success(res) { console.log(res.tempFilePath); } }); - 在
3. 平台差异
-
报错信息: 不同平台(如微信小程序、H5、App)可能会有不同的报错信息。
-
原因:
Uni.chooseVideo在不同平台上的实现方式不同。 -
解决方法:
- 根据平台特性进行适配。例如,在微信小程序中,可能需要使用
wx.chooseVideo而不是Uni.chooseVideo。 - 使用条件编译来处理不同平台的差异。
// #ifdef MP-WEIXIN wx.chooseVideo({ success(res) { console.log(res.tempFilePath); } }); // #endif // #ifndef MP-WEIXIN uni.chooseVideo({ success(res) { console.log(res.tempFilePath); } }); // #endif - 根据平台特性进行适配。例如,在微信小程序中,可能需要使用
4. H5 平台不支持
-
报错信息:
"chooseVideo:fail not supported" -
原因: H5 平台不支持
Uni.chooseVideo方法。 -
解决方法:
- 使用
input标签的file类型来替代。
<input type="file" accept="video/*" @change="handleVideoChange" />methods: { handleVideoChange(event) { const file = event.target.files[0]; if (file) { const url = URL.createObjectURL(file); console.log(url); } } } - 使用
5. 其他问题
-
报错信息: 其他未知错误。
-
解决方法:
- 检查
uni-app的版本,确保使用的是最新版本。 - 查看官方文档或社区,寻找类似问题的解决方案。
- 在
uni.chooseVideo的fail回调中打印详细的错误信息,帮助定位问题。
uni.chooseVideo({ success(res) { console.log(res.tempFilePath); }, fail(err) { console.error('chooseVideo fail:', err); } }); - 检查

