使用uni.chooseVideo后程序无响应
使用uni.chooseVideo后程序无响应
测试过的手机:
HarmonyOS 4.0.0, 华为 P30 Pro
示例代码:
uni.chooseVideo({
sourceType: ['album'],
compressed: false,
success: (res) => {
console.log('获取到的视频',res)
}
});
操作步骤:
uni.chooseVideo({
sourceType: ['album'],
compressed: false,
success: (res) => {
console.log('获取到的视频',res)
}
});
预期结果:
返回视频路径
实际结果:
选择视频返回程序界面后未收到回调,软件卡死,弹出“无响应” 查看 Android studio logcat 面板会出现几次 length is 0 or exceed MAX: 1024,之后就是 Application Not Responding
bug描述:
信息项 | 值 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | 15.2 (24C101) |
手机系统 | 全部 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 离线 |
项目创建方式 | CLI |
CLI版本号 | 3.0.0-4040520250104002 |
1 回复
这个问题的原因可能是华为P30 Pro在HarmonyOS 4.0.0系统上处理大视频文件时存在兼容性问题。从logcat日志中的"length is 0 or exceed MAX: 1024"错误提示来看,系统在处理视频文件时遇到了大小限制。
建议尝试以下解决方案:
- 添加fail回调捕获错误:
uni.chooseVideo({
sourceType: ['album'],
compressed: false,
success: (res) => {
console.log('获取到的视频',res)
},
fail: (err) => {
console.error('选择视频失败', err)
}
});
- 尝试启用压缩选项:
uni.chooseVideo({
sourceType: ['album'],
compressed: true, // 改为true
success: (res) => {
console.log('获取到的视频',res)
}
});