webrtc重新协商向下兼容
Downward compatibility of webrtc renegotiation
我想知道如何实现屏幕共享(或在初始 offer/answer 完成后将轨道添加到对等连接的任何其他任务)。我看到 2 个可能性:
- 在“现代 webrtc”中,这似乎是通过 pc.onnegotiationneeded 完成的,如果两个对等方尝试同时提供报价,则可能会回滚(参见 https://w3c.github.io/webrtc-pc/#perfect-negotiation-example)。但是最近才在 chrome 和 firefox 中正确支持回滚,而在其他浏览器中根本不支持,而且 adapter.js.
似乎也没有涵盖它。
- 我想旧的方法是一个点总是提供报价(“报价点”),如果另一个点稍后添加轨道,它需要询问报价点(例如通过信令) 发送新报价(以防止竞争)。这似乎过于复杂,如果需要通过信号“请求”报价,还会增加延迟。
所以我的问题是:是否有我错过的第三个选项,或者我能否以某种方式使可能性 1) 向下兼容?
P.S. 我知道你可以使用 replaceTrack 并且不需要重新协商,但这只适用于你之前已经有视频轨道的情况替换。
这叫做信号眩光。完美的协商试图避免它,但正如你所说,它并没有在所有地方实施,也不是 polyfillable。
第三种选择是创建新报价的一方 而不是 立即将其设置为本地描述,但要等到
1/ 收到答复
2/ 收到一个冲突的报价,在这种情况下,眩光处理(通常是一个数字作为决胜局)决定该报价是否具有更高的优先级。
我想知道如何实现屏幕共享(或在初始 offer/answer 完成后将轨道添加到对等连接的任何其他任务)。我看到 2 个可能性:
- 在“现代 webrtc”中,这似乎是通过 pc.onnegotiationneeded 完成的,如果两个对等方尝试同时提供报价,则可能会回滚(参见 https://w3c.github.io/webrtc-pc/#perfect-negotiation-example)。但是最近才在 chrome 和 firefox 中正确支持回滚,而在其他浏览器中根本不支持,而且 adapter.js. 似乎也没有涵盖它。
- 我想旧的方法是一个点总是提供报价(“报价点”),如果另一个点稍后添加轨道,它需要询问报价点(例如通过信令) 发送新报价(以防止竞争)。这似乎过于复杂,如果需要通过信号“请求”报价,还会增加延迟。
所以我的问题是:是否有我错过的第三个选项,或者我能否以某种方式使可能性 1) 向下兼容?
P.S. 我知道你可以使用 replaceTrack 并且不需要重新协商,但这只适用于你之前已经有视频轨道的情况替换。
这叫做信号眩光。完美的协商试图避免它,但正如你所说,它并没有在所有地方实施,也不是 polyfillable。 第三种选择是创建新报价的一方 而不是 立即将其设置为本地描述,但要等到 1/ 收到答复 2/ 收到一个冲突的报价,在这种情况下,眩光处理(通常是一个数字作为决胜局)决定该报价是否具有更高的优先级。