如何停止向一个对等方发送曲目而不停止向另一个对等方(webRtc)发送曲目?

问题描述 投票:0回答:1

我的程序(javascipt)已从摄像机捕获视频流,并将该流的视频轨道(

sentTrack
MediaStreamTrack
)发送到多个对等点(每个对等点都建立了一个WebRTC连接)。
因此,我使用一个流/轨道并将它们分发给多个对等点。
然后我需要停止向 one 对等方发送视频。
为此,我清除了
enabled
标志:

sentTrack.enabled = false

此代码停止向所有对等点发送视频,但我只需要停止向其中之一发送视频。 如何停止只向一位同伴发送视频?
是否有必要捕获每个用户的“单独”流/轨道才能停止发送到特定对等点? 如果仍然有必要,与情况1(一个流/轨道)相比,创建多个流/轨道会增加处理器的负载吗?

webrtc
1个回答
0
投票

是的,如果您禁用发送到所有对等连接的本地流,那么它会停止所有连接。但是,您可以将其从要停止发送的各个对等连接中删除,而不是禁用本地流。

您可以通过首先保存添加曲目的响应然后使用该响应删除曲目来删除它:

sender = pc.addTrack(track, stream);
// some stuff happening
pc.removeTrack(sender);

检查此处:https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/removeTrack

或者您也可以遍历所有发件人并将其全部删除

const senders = pc.getSenders();
senders.forEach((sender) => pc.removeTrack(sender));

在这些情况下,“pc”是您想要停止向其发送流的单个对等连接。

© www.soinside.com 2019 - 2024. All rights reserved.