WebRTC:removeStream 协商后再重新addStream:安全吗?

WebRTC: removeStream and then re- addStream after negotiation: Safe?

建立 WebRTC 会话后,我想在某个时候停止向对等方发送流,稍后再恢复发送。

如果我调用 removeStream,它确实会停止发送数据。如果我随后调用 addStream(使用之前删除的流),它将恢复。太棒了!

但是,这样安全吗?或者我需要在删除后 re-negotiate/exchange SDP and/or 在重新添加之后?我在几个地方看到它提到在进行此类更改后需要重新协商 SDP,但我想知道在删除并重新添加相同流的这种简单情况下是否可以?

PS:以防万一有人想建议:我不想更改曲目的启用状态,因为我仍然需要本地流播放,即使它没有被发送到同行.

它仅适用于 Chrome,并且是 non-spec,因此它既不兼容网络也不兼容 future-proof。

Firefox 中的 spec has pivoted from streams to tracks, sporting addTrack and removeTrack instead of addStream and removeStream. As a result the latter

不幸的是,因为 Chrome 没有跟上,这意味着重新协商目前在不同的浏览器中以不同的方式工作。 It is possible不过要努力去做。

新模型在流和 RTCPeerConnection 中发送的内容之间有更清晰的分离。

与其重新协商,不如设置 track.enabled = false 是个好主意。您仍然可以通过 cloning 曲目播放视频的本地视图。