uni-app uni.chooseVideo() 选择现有视频可以上传 拍摄的视频回调失败
uni-app uni.chooseVideo() 选择现有视频可以上传 拍摄的视频回调失败
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | windows 10 教育版 | HBuilderX |
操作步骤:
- 点击上传视频,触发chooseVideo,拍摄视频回调失败
预期结果:
拍摄视频后,返回成功回调
实际结果:
拍摄视频后,返回回调失败
bug描述:
本地真机运行可是成功上传视频,拍摄和选择视频都可以; 云打包后拍摄的视频返回fail,选择的视频可以; 报错信息如下:
{"0":"n","1":"u","2":"l","3":"l","errMsg":"chooseVideo:fail cancel","errcode":"0","code":"0"}
问题比较急,是在app使用中出现的问题,因为在真机运行本地环境没有问题,云打包后才出现的问题,通过elart才知道进入了失败的回调!!!急!急!急!!!
更多关于uni-app uni.chooseVideo() 选择现有视频可以上传 拍摄的视频回调失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
刚才看了下 相册权限和存储权限都要打开,解决了。。
更多关于uni-app uni.chooseVideo() 选择现有视频可以上传 拍摄的视频回调失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我也出现这个问题了
这社区根本没人理咱们啊 这问题出了 本地真机预览啥问题没有 一打完包就进失败的回调
问题比较急,是在app使用中出现的问题,因为在真机运行本地环境没有问题,云打包后才出现的问题,通过elart才知道进入了失败的回调!!!急!急!急!!!
同问,我是真机运行本地也遇到了这个问题
优先排查是否授权存储权限和相机权限。这是前提。如果确认提供权限。就请提供下复现问题的apk
权限确定都已授权,目前手上有手机和平板两个设备,手机都正常,平板的拍视频出现错误(拍照片正常),平板参数:Android版本 9,这种情况要提供复现问题的apk不好提供
回复 7***@qq.com: 如果是平板上才能复现问题。用HX真机调试能复现问题吗?
回复 DCloud_Android_ST: 我这个跟楼主不同的就是,用HX真机调试就出现了这个问题,还没有打正式包试
回复 7***@qq.com: 那看样子只能将平板快递给我们处理了
回复 DCloud_Android_ST: 这不太好弄,我这也才一个设备,我们先找找其他解决方法,谢谢
回复 DCloud_Android_ST: 下面我上传了一个日志文件,麻烦看一下能不能分析出什么问题
这个是通过adb logcat打的日志,麻烦看一下
看这个错误是系统相机底层错误
{“0”:“n”,“1”:“u”,“2”:“l”,“3”:“l”,“errMsg”:“chooseVideo:fail cancel”,“errcode”:“0”,“code”:“0”} 我这面华为手机 也是这个错误,不知道怎么解决了,
我的也是苹果电脑和安卓手机都可以上传,唯独苹果手机就是上传不了。 不知道为啥!
解决了吗
从报错信息 {"errMsg":"chooseVideo:fail cancel","errcode":"0","code":"0"} 来看,这是用户主动取消操作或系统中断导致的失败。在真机运行正常但云打包后出现该问题,通常与云打包时的配置或权限有关。
主要原因及解决方案:
-
相机/存储权限未正确配置
- 在云打包时,需确保
manifest.json中已勾选所需权限(Android:<uses-permission android:name="android.permission.CAMERA"/>和存储权限;iOS:NSCameraUsageDescription和NSPhotoLibraryUsageDescription)。 - 检查步骤:在 HBuilderX 中打开
manifest.json,进入“App模块配置”,确认“相机”和“相册”权限已勾选,并填写对应的使用描述(iOS必须填写)。
- 在云打包时,需确保
-
云打包使用的原生环境差异
- 真机运行使用的是 HBuilderX 基座,云打包后是独立应用,可能因原生环境差异导致权限触发逻辑不同。
- 建议:在应用启动时主动调用
uni.authorize预申请相机和相册权限,避免在chooseVideo时才触发系统权限弹窗(部分机型可能中断操作)。
-
代码兼容性问题
- 在
uni.chooseVideo的success回调中,建议先检查返回的临时文件路径是否有效(res.tempFilePath),云打包后路径处理可能不同。 - 可尝试在
fail回调中打印完整错误日志:uni.chooseVideo({ success: (res) => { /* ... */ }, fail: (err) => { console.error('chooseVideo失败详情:', JSON.stringify(err)); // 获取更详细错误信息 } });
- 在


