uni-app uni.chooseVideo 选择.avi视频后报错
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
的文件大小限制。你可以通过 maxDuration
和 compressed
参数来控制视频的时长和压缩。
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);
}
});