我正在开发一个 Vuejs 应用程序,它在浏览器中显示多个 RTSP 流。为了转换流并显示它们,我将RTSPtoWebRTC与WebRtcPlayer一起使用。由于低延迟(这是一个机器人项目),我决定使用 WebRTC。此方法运行良好,我可以查看最大延迟为 50 毫秒的所有流。但是一旦我断开与互联网的连接,我就会收到一个错误:
Uncaught DOMException: Can't create RTCPeerConnections when the network is down
我不能指望这个机器人会一直有互联网连接,这不是意图。
我尝试了几种解决方案,例如从播放器和服务器中洗掉对外部 iceServers 的任何提及。
iceServers: [{
urls: ["stun:stun.l.google.com:19302"]
}]
尝试使用 coturn 运行我自己的 STUN/TURN 服务器并将 IP 地址作为 ICE 服务器提供,但没有成功 - 仍然没有互联网错误。
如果这很重要,我会在 Firefox 上运行该应用程序,并且我在不久前发现了这篇文章:firefox bug report about this issue
我尝试了尝试将 about:config 中的 media.peerconnection.ice.loopback 设定为 true 的建议,但仍然不起作用。
非常感谢您的帮助!
uj5u.com热心网友回复:
该错误在 Firefox 代码中被抛出:https : //searchfox.org/mozilla-central/source/dom/media/PeerConnection.jsm#473
如果我正确阅读了该代码,则环回界面的解决方法将不再有效。代码中的 if 条件只是询问网络代码是否有任何网络连接。
所以你要么
- 尝试 Phillips 建议让一个网络界面相信它仍然具有连接性。也许一个带有硬编码 IP 地址的假界面,但没有默认路由就足够了。
- 或者您说服 Mozilla 开发人员相信在离线场景中使用 PeerConnections 有合理的用例以在 Firefox 中洗掉该检查 - 尽管我担心它可能会在代码的更下方遇到另一个错误。或者您可以尝试自己提交补丁。
0 评论