Javascript Chrome和Firefox之间的WebRTC重新协商

Javascript Chrome和Firefox之间的WebRTC重新协商,javascript,google-chrome,firefox,webrtc,Javascript,Google Chrome,Firefox,Webrtc,我能够在Firefox和Chrome之间建立WebRTC连接,但Firefox和Chrome之间的重新协商无法正常工作 Chrome对和Firefox对之间的重新协商没有问题 使用Firefox Chrome pair,当我在删除或添加曲目后从Chrome启动重新协商时,重新协商成功,并且在Firefox上正确触发onremovestream或onaddstream回调 但是当我在使用pc.removeTrack或pc.addTrack删除或添加曲目后从Firefox开始重新协商时,重新协商成功

我能够在Firefox和Chrome之间建立WebRTC连接,但Firefox和Chrome之间的重新协商无法正常工作

Chrome对和Firefox对之间的重新协商没有问题

使用Firefox Chrome pair,当我在删除或添加曲目后从Chrome启动重新协商时,重新协商成功,并且在Firefox上正确触发
onremovestream
onaddstream
回调

但是当我在使用
pc.removeTrack
pc.addTrack
删除或添加曲目后从Firefox开始重新协商时,重新协商成功,没有任何错误。但在Chrome
onremovestream
onaddstream
中,不会触发回调。当我使用
pc.getRemoteStreams
获取MediaStream时,我可以看到曲目的ID在重新协商后发生了更改,但当我尝试播放它时,MediaStream无法工作

我注意到一件奇怪的事,Firefox的实际本地曲目id与Chrome中的远程曲目id不匹配(甚至在重新协商之前)

Chrome和Firefox是否支持跨浏览器重新协商(主要是从Firefox到Chrome)

有人在firefox和Chrome之间达成了重新谈判吗


这个问题有解决办法吗

这不是一个完整的解决方案,但正是原因所在。如果您找到了解决方案,我建议您发布一个解决方案

对于WebRTC中的多个流,有两个计划UnifiedPlan和PlanB。PlanB被取消,统一规划正在成为标准。Firefox实现了UnifiedPlan,但chrome仍有PlanB实现。关于这一点,有一个很好的解释

为此编写了一个polyfill。但是这个polyfill有一个限制,它只支持从Chrome到Firefox的重新协商


如果我在chrome修复问题之前找到了解决方法,我会更新答案。

您可能希望将更新作为答案发布,即使不幸的是,它无法解决问题。但这不是一个解决方案。这就是问题的原因。我期待着解决这个问题。这很公平,但我担心在Chrome也更新到UnifiedPlanYeah之前你不会得到它。这是真的。我只是希望有人能找到sdp interop polyfill的完整解决方案。你是对的。我会将更新作为答案发布。虽然你不会被迫接受它,这样,你的问题仍然会进入“需要答案”流,但你也可以让问题更清楚,而不是在问题是什么之后,这已经值得IMM投票。