webRTC删除媒体跟踪不会生成重新协商,也不会停止媒体



使用本机Android webRTC应用程序,并尝试从包含组合音频/视频的媒体流中删除视频轨道(例如,localMS.addTrack(peerConnectionFactory.createVideoTrack("ARDAMSv0",videoSource));和localMS.addTrack(peerConnectionFactory.createAudioTrack("ARDAMSa0",audioSource);),视频流仍然被发送到远程端,并且没有生成"onregregation"回调。

关于removetrack与之前的removestream功能有很多讨论(例如,请参阅https://bugs.chromium.org/p/webrtc/issues/detail?id=5265#c4或https://bugs.chromium.org/p/webrtc/issues/detail?id=2136),此外,还讨论了一些解决方案,例如删除流,然后从流中删除曲目,并在创建新报价之前再次添加流。在W3C标准中(请参阅http://w3c.github.io/mediacapture-main/#dfn-设置),则似乎不存在应当发生重新协商的真实指示。

我试图解决的问题如下:这是删除视频曲目的正确方法吗(即在媒体流上调用removetrack)?

为什么没有重新协商?如果没有发生,什么时候应该发出新的报价?

为什么removestream的调用实际上并没有阻止流的传输?(仅当接收方在该媒体组件的sdp中具有recv_only时,新要约的传输本身似乎不会对流的传输产生任何影响)。

如果对此有任何想法,我们将不胜感激,一旦解决,我将发布我遇到的任何更新和有效的解决方案。

感谢

不确定Android WebRTC,但在浏览器WebRTC(应该类似)中,您需要调用轨道上的stop()才能真正停止它。或者完全关闭连接。

你首先添加曲目或新的流,然后创建报价并开始重新协商过程——它不会自动启动。

相关内容

  • 没有找到相关文章

最新更新