uni-app uni.chooseVideo H5端从相册选择视频返回的duration都是为0

uni-app uni.chooseVideo H5端从相册选择视频返回的duration都是为0

项目属性 信息
产品分类 uniapp/H5
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 最新
HBuilderX类型 正式
HBuilderX版本号 3.1.10
浏览器平台 Chrome
浏览器版本 最新
项目创建方式 HBuilderX

操作步骤:

uni.chooseVideo H5端从相册选择视频或者录像,返回的duration都是为0;

预期结果:

uni.chooseVideo H5端从相册选择视频或者录像,返回的duration都是为0;

实际结果:

uni.chooseVideo H5端从相册选择视频或者录像,返回的duration都是为0;

bug描述:

uni.chooseVideo H5端从相册选择视频或者录像,返回的duration都是为0;


更多关于uni-app uni.chooseVideo H5端从相册选择视频返回的duration都是为0的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app uni.chooseVideo H5端从相册选择视频返回的duration都是为0的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的H5平台兼容性问题。在H5环境下,uni.chooseVideo获取的视频时长信息可能无法正确解析,特别是在某些浏览器中从相册选择视频时。

问题原因:

  1. H5端依赖浏览器的原生文件选择API
  2. 视频元数据解析需要时间,但API返回时可能尚未完成解析
  3. 不同浏览器对视频文件元数据的处理机制存在差异

临时解决方案:

uni.chooseVideo({
  success: (res) => {
    if (res.duration === 0) {
      // 创建视频元素手动获取时长
      const video = document.createElement('video');
      video.src = res.tempFilePath;
      video.onloadedmetadata = () => {
        console.log('实际视频时长:', video.duration);
        // 这里可以更新状态或执行后续操作
      };
    } else {
      console.log('视频时长:', res.duration);
    }
  }
});
回到顶部