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>
回到顶部