我的程序(javascipt)已从摄像机捕获视频流,并将该流的视频轨道(
sentTrack
:MediaStreamTrack
)发送到多个对等点(每个对等点都建立了一个WebRTC连接)。enabled
标志:
sentTrack.enabled = false
此代码停止向所有对等点发送视频,但我只需要停止向其中之一发送视频。
如何停止只向一位同伴发送视频?
是否有必要捕获每个用户的“单独”流/轨道才能停止发送到特定对等点?
如果仍然有必要,与情况1(一个流/轨道)相比,创建多个流/轨道会增加处理器的负载吗?
是的,如果您禁用发送到所有对等连接的本地流,那么它会停止所有连接。但是,您可以将其从要停止发送的各个对等连接中删除,而不是禁用本地流。
您可以通过首先保存添加曲目的响应然后使用该响应删除曲目来删除它:
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”是您想要停止向其发送流的单个对等连接。