uni-app video组件播放rtmp流时报错,而其他测试播放器能正常播放
uni-app video组件播放rtmp流时报错,而其他测试播放器能正常播放
示例代码:
<video v-if="!mark" @error="error" :src="url" style="width: 100vw;" :style="{height : height + 'px'}" :autoplay="true" controls></video>
拉流地址:'rtmp://play.lianluzhixing.com/live/queue_queueplay'
操作步骤:
推流用的live-pusher组件,拉流用video播放rtmp
预期结果:
video报错
实际结果:
video报错
bug描述:
video组件播放rtmp时报错,用其他测试播放器可以正常播放
| 信息类别 | 内容 |
|----------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.3.2 |
| 手机系统 | Android |
| 手机系统版本号 | Android 12 |
| 手机厂商 | 华为 |
| 手机机型 | nova8 |
| 页面类型 | nvue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app video组件播放rtmp流时报错,而其他测试播放器能正常播放的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
VLC 打不开你提供的地址
更多关于uni-app video组件播放rtmp流时报错,而其他测试播放器能正常播放的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,video 组件播放 RTMP 流时出现错误,而其他播放器能正常播放,这通常是由于平台兼容性或组件限制导致的。以下是可能的原因和解决方案:
1. 平台兼容性问题
- Android 平台:
video组件在 Android 上默认使用系统播放器,而系统播放器对 RTMP 协议的支持可能有限,尤其是在较新的 Android 版本中。华为设备(如 nova8)可能因系统定制导致兼容性问题。 - iOS 平台:iOS 的
video组件通常依赖系统播放器,但 RTMP 流可能需要额外的解码支持,系统播放器可能无法直接播放。
2. RTMP 协议支持
video组件主要支持 HLS(.m3u8)和 MP4 等常见格式,对 RTMP 流的原生支持较弱。如果 RTMP 流使用了非标准编码或特殊参数,可能导致播放失败。
3. 错误处理与调试
- 在
@error事件中,可以通过回调参数获取错误信息,帮助定位问题。例如:error(e) { console.log('播放错误:', e.detail); } - 检查控制台是否有更详细的错误日志,或尝试在真机调试中查看错误信息。
4. 替代方案
- 使用
live-player组件:如果项目支持直播流,建议使用live-player组件替代video组件。live-player专门为直播流设计,对 RTMP 的支持更好。示例:<live-player :src="url" autoplay controls></live-player>

