uni-app nvue的live-pusher在ios端推流失败
uni-app nvue的live-pusher在ios端推流失败
操作步骤:
- nvue的live-pusher在ios端发起推流
预期结果:
- ios推流成功
实际结果:
- 推流自动断开
bug描述:
- live-pusher在ios上推流成功,但是在ios上开始推流失败,后面设置了NSAllowsArbitrayLoads可以推流,但是马上会断开,日志如下:
18:41:12.866 livePusher.start:{"message":"The streaming server has been connected","errMsg":"start:ok"} at pages/interview/interview.nvue:647
18:41:12.867 statechange:{"type":"statechange","timeStamp":1744594872928,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"AVStreamer Connected...","code":1002}} at pages/interview/interview.nvue:488
18:41:12.870 statechange:{"type":"statechange","timeStamp":1744594872928,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"PushStream Error...","code":1016}} at pages/interview/interview.nvue:488
18:41:12.872 RTMP connection failed or stream stopped, retrying in 3 seconds... at pages/interview/interview.nvue:587
18:41:12.873 statechange:{"type":"statechange","timeStamp":1744594872998,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"AVStreamer Writing...","code":1003}} at pages/interview/interview.nvue:488
18:41:12.875 statechange:{"type":"statechange","timeStamp":1744594872999,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"PushStream pushing...","code":1013}} at pages/interview/interview.nvue:488
18:41:16.887 statechange:{"type":"statechange","timeStamp":1744594876793,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"Capturer Stopped...","code":1008}} at pages/interview/interview.nvue:488
18:41:16.893 Camera stopped, handling as special iOS case... at pages/interview/interview.nvue:492
18:41:16.894 statechange:{"type":"statechange","timeStamp":1744594876810,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"AVStreamer Closed...","code":1006}} at pages/interview/interview.nvue:488
18:41:16.897 statechange:{"type":"statechange","timeStamp":1744594876810,"target":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"livePusher","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"message":"PushStream Closed...","code":1012}} at pages/interview/interview.nvue:488
18:41:16.900 [Object] {"message":"done","interviewId":"Fxyxjv-cPeQRu3KbXmeRX"} at pages/interview/interview.nvue:258
18:41:16.901 {"errMsg":"stop:ok"} at pages/interview/interview.nvue:685
18:41:17.908 event====, [Object] {"data":[{"event":"streamDisconnected","data":{}}]} at pages/interview/interview.nvue:309
18:41:17.910 Stream error:, streamDisconnected at pages/interview/interview.nvue:339
18:41:25.981 App Hide at App.vue:11
更多关于uni-app nvue的live-pusher在ios端推流失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app nvue的live-pusher在ios端推流失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
从日志分析,iOS端live-pusher推流失败的主要原因是RTMP连接不稳定导致。以下是关键点:
-
虽然初始连接成功(code 1002),但立即出现推流错误(code 1016),表明RTMP握手或传输层存在问题
-
iOS特有的摄像头停止问题(code 1008)可能是由于应用权限或后台运行限制导致
-
建议检查:
- 确保Info.plist中已配置相机和麦克风权限
- 测试不同的推流参数(分辨率/码率)
- 验证RTMP服务器兼容性(iOS对RTMP协议要求更严格)
- 检查网络环境是否稳定
- 可尝试在nvue页面添加以下配置:
livePusher: {
url: 'rtmp://...',
mode: 'SD',
muted: false,
enableCamera: true,
autoFocus: true,
beauty: 0,
whiteness: 0
}