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获取的视频时长信息可能无法正确解析,特别是在某些浏览器中从相册选择视频时。
问题原因:
- H5端依赖浏览器的原生文件选择API
- 视频元数据解析需要时间,但API返回时可能尚未完成解析
- 不同浏览器对视频文件元数据的处理机制存在差异
临时解决方案:
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);
}
}
});