uni-app uni.chooseVideo 拍摄或选择mov格式的视频获取不到视频的宽高等信息
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); } });