我有一个使用 adapter.js 实现 WebRTC 的 Web 应用程序,并且大多数情况下都有效。 Firefox 到 Firefox 以及 Chrome 到 Chrome 工作正常,但是:
当 Chrome 和 Firefox 连接时,来自 Firefox 端的视频不会显示在 Chrome 端。 音频确实有效!,所以 webrtc channel 很好。
- 计算机位于同一网络
- (我确实有 STUN/TURN 功能,但我认为这无关紧要)
- 哪一方发起调用并不重要
- Chrome 总是看不到 Firefox,而 Firefox 总是能看到 Chrome
- 没有错误,没有警告,所有预期的回调都会触发,握手似乎已完成
- Alice 在
onicecandidate
“结束”时向 Bob 发送了她的ice候选人。鲍勃也做了同样的事情,但时机可能比我意识到的更重要。 - 两个视频元素均已创建,并带有 blob src(使用
srcObject
),并且onloadedmetadata
在两个浏览器上都会触发 - 每台计算机上都会发生(在 5 台计算机上尝试了约 20 种组合)
极少数情况下,其他事情会失败,例如 ICE 协商(即使它始终是同一网络),并且 createOffer
或 setRemoteDescription
有时会失败。
我能找到的所有此类问题都是 2-3 年前的问题,但在那之后 Firefox 和 Chrome 似乎成了 RTC 的好伙伴。我的视频出了什么问题?
相关,但不是解决方案:
最佳答案
这可能是关于 API 中同步或不同步发生的事情的假设的问题。该 API 是高度异步的,同步或不同步发生的情况在浏览器之间(或同一浏览器的不同版本之间)有所不同。您可能需要仔细将您的代码与使用adapter.js的其他示例进行比较。
如果没有代码或相关片段,很难确切地说出了什么问题,但是需要检查的重要事项是:webrtc(对于 Firefox,包括底部的连接日志)、chrome webrtc 内部页面和内部日志记录。还可以添加您自己的记录,记录发生和未发生的回调/ promise 。我建议在 Firefox 中设置环境变量 NSPR_LOG_MODULES=signaling:4,mtransport:4 和 NSPR_LOG_FILE=whatever。您还可以(尤其是使用这些日志或一些示例代码)在 irc.mozilla.org 上的 #media 中 ping Firefox 开发人员。
关于google-chrome - 从 Firefox 到 Chrome 没有 WebRTC 视频信号,但所有其他组合均有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532343/