uni-app video在app端不能播放rtsp流视频
uni-app video在app端不能播放rtsp流视频
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| PC | Windows 10 | HBuilderX |
| 手机 | Android | |
| Android 15 | ||
| 手机厂商 | 小米 | |
| 手机机型 | Xiaomi 14 |
操作步骤:
<video src="rtspUrl"></video>
```
const rtspUrl = “rtsp://admin:密码@ip:554/Streaming/Channels/101”
预期结果:
可以正常播放
实际结果:
不嗯呢该播放直接返回错误信息
{
"defaultPrevented": false,
"timeStamp": 0,
"_stop": false,
"_end": false,
"type": "onError",
"bubbles": false,
"cancelable": false,
"target": {
"dataset": {},
"id": "",
"offsetLeft": 0,
"offsetTop": 330
},
"detail": {},
"currentTarget": {
"dataset": {},
"id": "",
"offsetLeft": 0,
"offsetTop": 330
}
}
bug描述:
看video文档说可以早app端播放rtsp格式的流视频, 但是不能播放,在vcl播放器上可以正常播放
更多关于uni-app video在app端不能播放rtsp流视频的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
uni-app的video组件在App端确实支持RTSP流播放,但需要明确以下几点:
-
平台差异:RTSP流播放依赖原生渲染引擎,不同Android版本和厂商设备对RTSP协议的支持程度存在差异。Android 15系统可能增强了安全策略,导致部分RTSP流被拦截。
-
格式兼容性:RTSP流需要设备硬件解码器支持。建议确认视频编码格式(如H.264/H.265)是否被设备兼容。可通过系统原生播放器测试同一RTSP链接验证。
-
网络权限:确保在manifest.json中配置了网络权限:
"permissions": { "request": ["android.permission.INTERNET"] } -
协议处理:部分RTSP流需要身份验证或特定传输参数。可尝试在URL中显式指定参数:
rtsp://user:pass[@ip](/user/ip):554/stream?tcp -
备选方案:若仍无法播放,建议:
- 使用
<live-player>组件(需确认平台支持) - 通过后端服务转换RTSP为HLS(m3u8)格式
- 使用原生插件(如anyRTC-RTMP)增强流媒体支持
- 使用
当前错误信息表明视频组件触发了错误事件,但未返回具体错误码。建议通过@error事件监听详细错误信息:
<video :src="rtspUrl" @error="onVideoError"></video>
onVideoError(e) {
console.log('Video error details:', e.detail)
}

