uni-app uni.chooseVideo 拍摄或选择mov格式的视频获取不到视频的宽高等信息

发布于 1周前 作者 itying888 来自 Uni-App

uni-app uni.chooseVideo 拍摄或选择mov格式的视频获取不到视频的宽高等信息

测试过的手机:

所有的安卓手机,ios15

示例代码:

uni.chooseVideo({
sourceType: ['camera', 'album'],
success: function (res) {
console.log('选择文件:',res)
}
});

操作步骤:

  • 选择mov格式的视频文件

预期结果:

  • 获取到视频的宽高

实际结果:

  • 没有获取到宽高 宽高都是0 数据不正确

bug描述:

uni.chooseVideo获取不到mov格式的视频宽高


6 回复

有结果吗,,我这边真机ios是自动转成了mov格式,获取不到时间,赋值不到页面

在使用 uni.chooseVideo 方法选择或拍摄视频时,如果你发现无法获取到视频的宽度和高度信息,尤其是在处理 .mov 格式的视频时,可能是由于以下原因:

1. 平台支持问题

  • uni.chooseVideo 在不同的平台上可能会有不同的行为。某些平台可能不支持直接获取 .mov 格式视频的元数据(如宽度、高度等)。
  • 尤其是在微信小程序中,.mov 格式的视频可能无法正确解析其元数据。

2. 视频元数据解析问题

  • .mov 是一种容器格式,它可能包含多种编码格式的视频和音频流。某些平台可能无法正确解析 .mov 文件中的元数据。

3. 异步获取问题

  • uni.chooseVideo 返回的视频信息可能不包含宽度和高度,或者这些信息需要通过其他方式异步获取。

解决方案

1. 使用 uni.getVideoInfo 获取视频信息

  • uni.chooseVideo 成功后,可以通过 uni.getVideoInfo 方法获取视频的详细信息,包括宽度和高度。
  • 示例代码:
    uni.chooseVideo({
      sourceType: ['album', 'camera'],
      success: (res) => {
        console.log('视频临时路径:', res.tempFilePath);
        uni.getVideoInfo({
          src: res.tempFilePath,
          success: (info) => {
            console.log('视频宽度:', info.width);
            console.log('视频高度:', info.height);
          },
          fail: (err) => {
            console.error('获取视频信息失败:', err);
          }
        });
      },
      fail: (err) => {
        console.error('选择视频失败:', err);
      }
    });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!