WebRTC:removeStream然后在协商后重新添加addStream:安全吗?

时间:2017-02-16 21:44:22

标签: webrtc

建立WebRTC会话后,我想在某个时刻停止向对等体发送流,然后再继续发送。

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

但是,这样安全吗?或者我需要在删除后和/或重新添加后重新协商/交换SDP?我已经看到它在几个地方提到SDP需要在这些更改后重新协商,但是我想知道在这个简单的情况下是否可以删除并重新添加相同的流?

PS:以防万一有人想提出建议:我不想改变赛道的启用状态,因为我仍然需要播放本地流,即使它没有被发送给对等体。 / p>

1 个答案:

答案 0 :(得分:3)

它只能在Chrome中使用,并且不符合规范,因此它既不兼容Web也不适合未来。

spec已从流转到跟踪,运动addTrackremoveTrack而不是addStreamremoveStream。因此,Firefox中的后者isn't even implemented

不幸的是,由于Chrome还没有赶上,这意味着重新协商目前在不同浏览器中的工作方式不同。 It is possible要做一些努力。

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

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