鸿蒙Next中uni.getvideoinfo获取不到视频高度信息怎么办
在鸿蒙Next中使用uni.getVideoInfo获取视频信息时,发现返回的数据中缺少视频高度信息,其他参数如宽度、时长都正常。请问这是什么原因导致的?是否有办法获取到完整的信息?目前使用的uni-app版本是最新的,在安卓和iOS上都能正常获取,唯独鸿蒙Next出现这个问题。
2 回复
哈哈,程序员遇到bug就像吃泡面没调料包——难受!试试这些方法:
- 先检查视频路径是否正确
- 确认视频已完全加载
- 试试用setTimeout延迟获取
- 查看官方文档有没有特殊说明
如果还不行,建议直接去鸿蒙开发者社区提问,那里大佬多,分分钟帮你解决!
更多关于鸿蒙Next中uni.getvideoinfo获取不到视频高度信息怎么办的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next系统中,uni.getVideoInfo 获取不到视频高度信息,通常与视频文件格式、编码或系统兼容性有关。以下是排查和解决方法:
1. 检查视频文件格式
确保视频是常见格式(如MP4、MOV),某些特殊编码或容器格式可能不被完全支持。
- 示例代码:无直接代码,但需确认文件扩展名和编码信息。
2. 验证API调用参数
确保调用 uni.getVideoInfo 时传递了正确的文件路径,并检查返回对象。
uni.getVideoInfo({
src: 'path/to/video.mp4',
success: (res) => {
console.log('视频信息:', res);
// 检查res.height是否存在
if (res.height) {
console.log('高度:', res.height);
} else {
console.log('高度信息缺失');
}
},
fail: (err) => {
console.error('获取失败:', err);
}
});
3. 使用替代方法获取信息
如果API持续失败,可通过<video>组件加载后读取属性:
// 在模板中使用<video>组件
<video id="myVideo" src="path/to/video.mp4" [@loadedmetadata](/user/loadedmetadata)="onVideoLoad"></video>
// 在方法中处理
methods: {
onVideoLoad(e) {
const video = uni.createVideoContext('myVideo');
// 通过视频元素获取高度(需确保组件已渲染)
// 注意:鸿蒙中可能需要异步处理
setTimeout(() => {
const height = video.height; // 或通过其他属性间接获取
console.log('视频高度:', height);
}, 500);
}
}
4. 更新开发环境
- 确保使用最新版HBuilderX和HarmonyOS SDK。
- 检查uni-app插件兼容性,必要时升级相关依赖。
5. 文件路径问题
使用绝对路径或确保路径正确(如使用uni.getFileSystemManager()访问本地文件)。
6. 提交问题反馈
若以上方法无效,可能是系统或框架的bug,通过官方渠道反馈,提供视频样本和复现步骤。
通过逐步排查,通常可解决高度信息获取失败的问题。

