cv小垃圾
cv小垃圾
  • 发布:2026-06-18 22:30
  • 更新:2026-06-18 22:30
  • 阅读:33

【报Bug】android app 使用uni.chooseMedia 选择webm格式的视频 无响应 success和fail都不会走

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号:

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: Android

手机系统版本号: Android 16

手机厂商: 小米

手机机型: redmi

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.chooseMedia({
count: 8, //默认9
mediaType:['video'],
sourceType: ['album', 'camera'],
success: async (chooseVideoRes) => {
console.log(chooseVideoRes);
},
fail:(error)=>{
console.log(error);
},
complete:()=>{
console.log(complete);
}
});

预期结果:

兼容webm格式视频选择

bug描述:

android app 使用uni.chooseMedia 选择webm格式的视频 无响应 success和fail都不会走

2026-06-18 22:30 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

好的,我们来看一下这个 bug 反馈。

1. 反馈内容评审

这个反馈在核心问题的描述上比较清晰,直接点出了 uni.chooseMedia 在 Android App 上选择 webm 格式视频时,successfail 回调都没有触发,导致应用无响应。这确实是一个影响功能的问题。

不过,反馈在完整性上还有提升空间,主要有以下几点:

  • BUG 描述不够深入:描述只说了“无响应,success和fail都不会走”,但缺少一些关键细节。比如,是不是只要视频列表中存在 webm 格式的视频,整个选择器就卡死了?还是说点击某个 webm 视频后没反应?或者是其他情况?这个细节对于技术人员排查问题至关重要。
  • 缺少复现步骤:这是一个关键缺失。反馈中没有明确说明如何复现此问题。例如,测试用的 webm 视频文件是如何获取的(自己录制的、下载的、还是其他来源)?视频的具体参数(编码、分辨率、时长、大小)是怎样的?这些信息会直接影响官方人员能否成功复现该问题。
  • 预期结果需要更明确:“兼容webm格式视频选择”这个预期很好,但可以更具体一些。比如,是期望能够正常选中并返回文件信息,还是期望在系统选择器层面就过滤掉不支持的格式,或者至少给出一个明确的错误回调。
  • 分类信息基本完整:反馈提供了 HBuilderX 版本、Vue 版本、设备型号和系统版本,这点做得不错,有助于快速定位问题范围。

综合来看,这个反馈说明了核心现象,但缺少了帮助官方人员快速复现问题的关键步骤和细节,导致其有效性打了折扣。

2. Bug 是否成立分析

这个 bug 大概率是成立的

根据我对知识库的检索,uni.chooseMedia API 在 App 端调用的是系统相册选择器。它的行为在很大程度上依赖于具体 Android 系统版本和设备厂商的 ROM 对媒体格式的支持情况。webm 作为一种容器格式,其内部的视频和音频编码(如 VP8/VP9,Vorbis/Opus)非常多样,并不是所有 Android 系统相册都能很好地支持预览和选择。

知识库中有一个类似的案例:【报Bug】uni.chooseVideo 选择.avi视频后报错,这表明在 App 端,使用这类 API 选择非通用格式(如 MP4)的视频时,确实可能出现异常。虽然那个案例是 chooseVideo 且有错误回调,但原理是相通的:系统媒体选择器对不支持的格式处理不一致,可能导致无响应。

另外,从优先知识库中可以看到,uni.chooseMedia 在 Android 上采用的是系统 Picker 的形式,这进一步印证了该API的行为受系统限制。

因此,你遇到的 webm 视频无响应问题,很可能就是特定 Android 系统(如你测试的 Android 16 的小米设备)的相册选择器在处理 webm 文件时出现了内部异常,导致 uni.chooseMedia 的回调机制被绕过,最终表现为无响应。

3. 替代方案与建议

既然问题出在系统选择器对特定格式的兼容性上,除了等待官方适配或系统更新外,你可以考虑以下替代方案:

  • 方案一:使用专门的插件
    如果需要在 App 端选择各种格式的视频,可以尝试使用功能更强大的原生插件。例如,插件市场有一个官方出品的插件 uni-chooseSystemMedia,它旨在解决 Google Play 权限政策问题,同时可能对文件格式有更好的兼容性处理。你可以搜索一下看看是否满足你的需求。

  • 方案二:引导用户或自行处理
    在应用层面,你可以做一些优化:

    1. 提示用户:在调用选择器前,可以提示用户“若选择 webm 格式视频可能无响应,建议选择 MP4 等通用格式”。
    2. 增加超时处理:在调用 uni.chooseMedia 时,可以自行设置一个定时器。如果一段时间内(如 10 秒)没有任何回调,就主动提示用户操作失败,并引导其重试或选择其他格式的视频。这虽然不能解决根本问题,但能避免应用看起来“卡死”了。

最后,为了能让官方更高效地处理此问题,建议你补充信息后,在官方 issues 系统 中提交一个完整的 bug 报告,并提供以下信息:

  1. 详细的复现步骤:描述你是如何操作触发这个问题的。
  2. 问题视频文件:提供一个可以复现此问题的 webm 视频样本,这对于开发者来说是最宝贵的资源。
  3. 更具体的现象:描述是点击视频后无响应,还是整个选择器界面卡死。
内容为 AI 生成,仅供参考

要回复问题请先登录注册