使用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

示例图片

HUAWEI-VOG-AL10-Android-10_2025-03-11_135929.logcat_.zip


1 回复

这个问题的原因可能是华为P30 Pro在HarmonyOS 4.0.0系统上处理大视频文件时存在兼容性问题。从logcat日志中的"length is 0 or exceed MAX: 1024"错误提示来看,系统在处理视频文件时遇到了大小限制。

建议尝试以下解决方案:

  1. 添加fail回调捕获错误:
uni.chooseVideo({
  sourceType: ['album'],
  compressed: false,
  success: (res) => {
    console.log('获取到的视频',res)
  },
  fail: (err) => {
    console.error('选择视频失败', err)
  }
});
  1. 尝试启用压缩选项:
uni.chooseVideo({
  sourceType: ['album'],
  compressed: true,  // 改为true
  success: (res) => {
    console.log('获取到的视频',res)
  }
});
回到顶部