uni-app uni.chooseVideo() 选择现有视频可以上传 拍摄的视频回调失败

uni-app uni.chooseVideo() 选择现有视频可以上传 拍摄的视频回调失败

开发环境 版本号 项目创建方式
Windows windows 10 教育版 HBuilderX

操作步骤:

  1. 点击上传视频,触发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

19 回复

刚才看了下 相册权限和存储权限都要打开,解决了。。

更多关于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打的日志,麻烦看一下

看这个错误是系统相机底层错误

回复 DCloud_Android_ST: 好的 谢谢回复 我这边咨询下设备厂家

{“0”:“n”,“1”:“u”,“2”:“l”,“3”:“l”,“errMsg”:“chooseVideo:fail cancel”,“errcode”:“0”,“code”:“0”} 我这面华为手机 也是这个错误,不知道怎么解决了,

我的也是苹果电脑和安卓手机都可以上传,唯独苹果手机就是上传不了。 不知道为啥!

解决了吗

从报错信息 {"errMsg":"chooseVideo:fail cancel","errcode":"0","code":"0"} 来看,这是用户主动取消操作或系统中断导致的失败。在真机运行正常但云打包后出现该问题,通常与云打包时的配置或权限有关。

主要原因及解决方案:

  1. 相机/存储权限未正确配置

    • 在云打包时,需确保 manifest.json 中已勾选所需权限(Android:<uses-permission android:name="android.permission.CAMERA"/> 和存储权限;iOS:NSCameraUsageDescriptionNSPhotoLibraryUsageDescription)。
    • 检查步骤:在 HBuilderX 中打开 manifest.json,进入“App模块配置”,确认“相机”和“相册”权限已勾选,并填写对应的使用描述(iOS必须填写)。
  2. 云打包使用的原生环境差异

    • 真机运行使用的是 HBuilderX 基座,云打包后是独立应用,可能因原生环境差异导致权限触发逻辑不同。
    • 建议:在应用启动时主动调用 uni.authorize 预申请相机和相册权限,避免在 chooseVideo 时才触发系统权限弹窗(部分机型可能中断操作)。
  3. 代码兼容性问题

    • uni.chooseVideosuccess 回调中,建议先检查返回的临时文件路径是否有效(res.tempFilePath),云打包后路径处理可能不同。
    • 可尝试在 fail 回调中打印完整错误日志:
      uni.chooseVideo({
        success: (res) => { /* ... */ },
        fail: (err) => {
          console.error('chooseVideo失败详情:', JSON.stringify(err)); // 获取更详细错误信息
        }
      });
回到顶部