IOS uni-app uni.chooseVideo拍摄视频或者选择手动拍摄的视频返回的宽高是相反的

IOS uni-app uni.chooseVideo拍摄视频或者选择手动拍摄的视频返回的宽高是相反的

开发环境 版本号 项目创建方式
Mac M1 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

手机系统:iOS

手机系统版本号:iOS 17

手机厂商:苹果

手机机型:iPhone 12

页面类型:vue

vue版本:vue2

打包方式:云端

示例代码:

uni.chooseVideo({ count: 1, compressed: true, sourceType: this.sourceType, success: (res) => { console.log(‘res-----’, res); resolve(res) }, fail: (err) => { reject(err) } })


操作步骤:

直接上传视频就出现了

预期结果:

“width”: 540, “height”: 960


实际结果:

{
"errMsg": "chooseVideo:ok",
"tempFilePath": "file:///var/mobile/Containers/Data/Application/73C33F8A-3ED9-4EB0-8865-CE888023B19E/Documents/Pandora/apps/F04482F80421C52814AB6FA5A0507FE9/doc/uniapp_temp_1745374407767/gallery/IMG_9172_compressMedium.mp4",
"size": 3941871,
"duration": 20,
"width": 960,
"height": 540
}

bug描述:

uni.chooseVideo拍摄视频或者选择手动拍摄的视频返回的宽高是相反的


更多关于IOS uni-app uni.chooseVideo拍摄视频或者选择手动拍摄的视频返回的宽高是相反的的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

这个bug早就有了,官方一直不给解决。

更多关于IOS uni-app uni.chooseVideo拍摄视频或者选择手动拍摄的视频返回的宽高是相反的的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个iOS系统下常见的视频方向问题。在iOS设备上,视频的元数据中会包含旋转信息(rotation),但部分API可能没有正确处理这个旋转标记,导致返回的宽高与实际显示方向不符。

解决方案:

  1. 使用uni.getVideoInfo获取更准确的视频信息:
uni.getVideoInfo({
  src: res.tempFilePath,
  success: (infoRes) => {
    console.log('视频信息:', infoRes);
    // 这里会返回包含旋转角度的完整信息
  }
});
  1. 手动处理方向问题:
// 判断是否需要交换宽高
const shouldSwap = res.width > res.height; // 根据你的业务逻辑调整
const width = shouldSwap ? res.height : res.width;
const height = shouldSwap ? res.width : res.height;
回到顶部