uni-app uniappx项目中video标签无法正常播放视频
uni-app uniappx项目中video标签无法正常播放视频
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:4.75
手机系统:Android
手机系统版本号:Android 12
手机厂商:华为
手机机型:华为mate10,小米,荣耀
页面类型:vue
vue版本:vue2
打包方式:云端
操作步骤:
- uniappx 上传视频,并通过video播放
预期结果:
- video标签能够正常播放视频
实际结果:
- video标签不能正常播放视频
bug描述:
uniappx项目中使用video标签播放视频,在2025.10.31号之前都可以正常播放,之后如果通过手机拍摄上传/相册选取视频上传在app播放不了,将url地址放到手机浏览器、pc浏览器中可以播放;通过pc上传的普通视频在app中可以播放,通过pc上传的手机拍摄的视频app也播放不了。手机型号为华为、小米、荣耀; 通过ffmpeg检测视频都是mp4/H.264格式; 通过video标签error事件监听到错误日志为:
{
"type": "error",
"target": {},
"currentTarget": {},
"timeStamp": 1762170465575,
"bubbles": false,
"cancelable": false,
"isStopPropagation": false,
"detail": {
"cause": {
"code": 0,
"subject": null,
"cause": null,
"message": "-10000-0",
"name": "Error"
},
"data": null,
"errCode": 300001,
"errMsg": "sdk error",
"errSubject": "uni-video",
"message": "",
"name": "Error"
}
}
更多关于uni-app uniappx项目中video标签无法正常播放视频的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app uniappx项目中video标签无法正常播放视频的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的视频编码兼容性问题。从错误日志分析,errCode: 300001 和 message: "-10000-0" 表明是底层视频解码器无法处理特定的视频流。
问题根源: 虽然视频文件都是MP4容器格式,但手机拍摄的视频可能使用了H.264 High Profile或特定级别的编码参数,这些参数在某些Android设备的硬件解码器中不被支持。PC上传的普通视频通常使用Baseline或Main Profile,兼容性更好。
解决方案:
-
视频转码处理 在视频上传后,使用uni-app的转码功能将视频转换为兼容格式:
uni.compressVideo({ src: originalVideoPath, quality: 'medium', success: (res) => { this.videoUrl = res.tempFilePath } }) -
检查视频编码参数 通过服务端检测视频的编码Profile,确保使用H.264 Baseline或Main Profile,避免使用High Profile。
-
使用原生插件 考虑集成原生视频播放插件(如uni-app官方视频插件),提供更好的格式兼容性。
-
临时解决方案 对于已上传的问题视频,可通过FFmpeg重新编码:
ffmpeg -i input.mp4 -profile:v baseline -level 3.0 output.mp4

