Chrome和Firefox之间的WebRTC重新协商
WebRTC renegotiation between Chrome and Firefox
我能够在Firefox和Chrome之间建立WebRTC连接,但是Firefox-Chrome之间的重新协商无法正常工作。
Chrome-Chrome 对和 Firefox-Firefox 对之间的重新协商没有问题。
使用Firefox-Chrome对,当我在删除或添加曲目后从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被放弃,UnifiedPlan正在成为标准。Firefox 实现了 UnifiedPlan,但 chrome 仍然实现了 PlanB。有一个关于这个的铬错误。
为此编写了一个填充代码,spd-interop。但是这个 polyfill 有一个限制,它只支持从 Chrome 到 Firefox 的重新协商。
如果我在 chrome 解决问题之前找到解决此问题的方法,我将更新答案。
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 防止Iframe窗体在新窗口中打开
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 通过js在新选项卡中有条件地打开url
- 使用jquery将mysql数据获取到新的表行中
- 触摸移动时切换到新元素
- 如何从rails中的代码中删除新行( )
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- chrome在WebSocket握手期间获取新错误
- AngularJs指令,该指令创建内部有数据对象的新指令
- 新选项卡被弹出窗口阻止程序阻止
- Chrome和Firefox之间的WebRTC重新协商
- 经过重新协商,onaddstream从未打过电话
- SignalR出现跨域协商请求错误
- 查看不同输出格式时的内容协商
- 用于ping和协商的下划线参数
- Webrtc向c++原生api发送新报价时,重新协商失败