uni-app掌玩mini平板uni.chooseVideo一直返回fail

uni-app掌玩mini平板uni.chooseVideo一直返回fail

信息类别 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows10
HBuilderX类型 Alpha
HBuilderX版本号 4.06
手机系统 Android
手机系统版本号 Android 13
手机厂商 酷比
手机机型 Zhangwanmini
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

let obj = {
    sourceType: ['album', 'camera']
}
console.log("this.maxDuration == null ||this.maxDuration == undefined: ", this.maxDuration == null ||
this.maxDuration == undefined); 

let maxDuration = this.maxDuration ? this.maxDuration : 60  
let minDuration = this.minDuration ? this.minDuration : 1  

if (maxDuration && maxDuration <= 60 && minDuration <= 60) {  
    obj.maxDuration = maxDuration  
}  
if (minDuration && minDuration > 60) {  
    obj.sourceType = ['album']  
}  
console.log('obj: ',obj);  
uni.chooseVideo({  
    ...obj,  
    compressed: this.compressVideo,  
    success: async (res) => {  
        console.log(res);  
        console.log("this.maxDuration: ", this.maxDuration);  
        if (maxDuration && (res.duration > parseInt(maxDuration + 1) || res.duration <= parseInt(minDuration))) {  
            if (this.minDuration > 0) {  
                _this.$tip.toast('视频时长最小' + minDuration + 's,视频时长最大' + maxDuration + 's')  
            } else {  
                _this.$tip.toast('视频时长最大' + maxDuration + 's')  
            }  
            return  
        }  
        // uni.showLoading({  
        //  title: '正在上传视频'  
        // })  
        let result = ''  
        result = await _this.uploadFile(res.tempFilePath)  
        _this.fileList.push(result)  
        uni.hideLoading()  
    },  
    fail(e) {  
        console.log(e);  
        // _this.$tip.toast(e.errMsg)  
    }  
})

操作步骤:

  • 拍摄完,点确定就进入fail

预期结果:

  • 拍摄完,点确定就进入success

实际结果:

  • 拍摄完,点确定就进入fail

bug描述:

  • 拍摄完,点确定就进入fail

更多关于uni-app掌玩mini平板uni.chooseVideo一直返回fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

{ “errMsg”: “chooseVideo:fail null”, “errCode”: -99, “code”: -99 }

更多关于uni-app掌玩mini平板uni.chooseVideo一直返回fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html


蹲一个,相同问题

在使用 uni-app 开发时,如果你在掌玩 Mini 平板上调用 uni.chooseVideo 方法时一直返回 fail,可能有以下几个原因和解决方法:

1. 权限问题

  • 原因:应用可能没有获取摄像头或存储权限。
  • 解决方法:确保在 manifest.json 中正确配置了相关权限,并且在运行时请求了相应的权限。
{
  "mp-weixin": {
    "permission": {
      "scope.camera": {
        "desc": "需要使用摄像头"
      },
      "scope.writePhotosAlbum": {
        "desc": "需要写入相册"
      }
    }
  }
}

在代码中,你可以使用 uni.authorize 方法请求权限:

uni.authorize({
  scope: 'scope.camera',
  success() {
    uni.chooseVideo({
      success(res) {
        console.log('视频路径:', res.tempFilePath);
      },
      fail(err) {
        console.error('选择视频失败:', err);
      }
    });
  },
  fail() {
    console.error('授权失败');
  }
});

2. 设备不支持

  • 原因:掌玩 Mini 平板可能不支持 uni.chooseVideo 方法,或者设备本身不支持视频录制。
  • 解决方法:检查设备的兼容性,或者使用其他方法(如 uni.chooseImage)来代替。

3. API 调用错误

  • 原因uni.chooseVideo 的参数可能配置不正确。
  • 解决方法:确保你正确配置了 uni.chooseVideo 的参数。
uni.chooseVideo({
  sourceType: ['camera', 'album'],
  maxDuration: 60,
  camera: 'back',
  success(res) {
    console.log('视频路径:', res.tempFilePath);
  },
  fail(err) {
    console.error('选择视频失败:', err);
  }
});

4. 系统或框架问题

  • 原因:可能是 uni-app 框架或掌玩 Mini 平板的系统存在兼容性问题。
  • 解决方法:尝试更新 uni-app 框架到最新版本,或者检查是否有相关的 Bug 反馈。如果问题依然存在,可以尝试在官方社区或 GitHub 上提交 Issue。

5. 调试与日志

  • 原因fail 回调中的错误信息可能不够详细。
  • 解决方法:在 fail 回调中打印详细的错误信息,以便更好地定位问题。
uni.chooseVideo({
  sourceType: ['camera', 'album'],
  maxDuration: 60,
  camera: 'back',
  success(res) {
    console.log('视频路径:', res.tempFilePath);
  },
  fail(err) {
    console.error('选择视频失败:', JSON.stringify(err));
  }
});
回到顶部