uni-app uni.chooseVideo 选择.avi视频后报错

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app uni.chooseVideo 选择.avi视频后报错

开发环境 版本号 项目创建方式
Windows win11 HBuilderX
### 操作步骤:
```p
openFile(){
uni.chooseVideo({
compressed:false,
success:(e)=>{ 
// console.log(e,"success");
},
complete:(e)=>{
console.log(e,"e");
}
})
},

预期结果:

能读取成功视频

实际结果:

读取失败

bug描述:

uni.chooseVideo 选择.avi视频后报错。
"errMsg": "chooseVideo:fail Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference",
"errCode": 13,
"code": 13

1 回复

在使用 uni.chooseVideo 选择 .avi 视频时,可能会遇到报错的情况。这通常是因为 .avi 格式的视频在某些平台或设备上不被支持,或者是因为 uni.chooseVideo 的默认配置不支持 .avi 格式。

以下是一些可能的原因和解决方案:

1. 平台支持问题

uni.chooseVideo 在不同平台上的支持情况可能不同。例如,某些平台可能不支持 .avi 格式的视频。你可以检查目标平台是否支持 .avi 格式。

2. 文件格式限制

uni.chooseVideo 默认可能只支持常见的视频格式(如 .mp4, .mov 等)。你可以通过 extension 参数来指定允许选择的文件格式。

uni.chooseVideo({
  sourceType: ['album', 'camera'],
  extension: ['.mp4', '.avi', '.mov'], // 添加 .avi 格式
  success: function (res) {
    console.log(res.tempFilePath);
  },
  fail: function (err) {
    console.error(err);
  }
});

3. 文件大小限制

如果 .avi 文件过大,可能会超出 uni.chooseVideo 的文件大小限制。你可以通过 maxDurationcompressed 参数来控制视频的时长和压缩。

uni.chooseVideo({
  sourceType: ['album', 'camera'],
  maxDuration: 60, // 最大时长 60 秒
  compressed: true, // 压缩视频
  success: function (res) {
    console.log(res.tempFilePath);
  },
  fail: function (err) {
    console.error(err);
  }
});

4. 平台差异

不同平台(如微信小程序、H5、App)对 uni.chooseVideo 的支持和限制可能不同。你可以根据具体平台进行适配。

5. 错误处理

fail 回调中捕获错误信息,以便更好地了解问题的原因。

uni.chooseVideo({
  sourceType: ['album', 'camera'],
  success: function (res) {
    console.log(res.tempFilePath);
  },
  fail: function (err) {
    console.error('选择视频失败:', err);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!