语法
js
setStreams()
setStreams(mediaStream1)
setStreams(mediaStream1, mediaStream2)
setStreams(mediaStream1, mediaStream2, /* …, */ mediaStreamN)
参数
mediaStreamN可选-
作为参数指定的任意数量的
MediaStream对象,它们标识了RTCRtpSender的track所属的流。如果未指定此参数,则不会将新流与该 track 关联。
返回值
无(undefined)。
异常
InvalidStateErrorDOMException-
如果发送器的连接已关闭,则会抛出此异常。
描述
setStreams() 是纯粹的添加操作。它不会将 track 从任何流中移除;它只是将 track 添加到新的流中。如果您指定的流中已包含该 track,则该流不受影响。
一旦 track 已被添加到所有流中,negotiationneeded 事件就会被分派到发送器所属的 RTCPeerConnection,从而触发连接的重新协商。
示例
此示例将 RTCPeerConnection 的所有 track 添加到指定的流中。
js
function addTracksToStream(stream) {
let senders = pc.getSenders();
senders.forEach((sender) => {
if (sender.track && sender.transport.state === connected) {
sender.setStreams(stream);
}
});
}
在调用 RTCPeerConnection 的 getSenders() 方法以获取连接发送器列表后,addTracksToStream() 函数会遍历该列表。对于每个发送器,如果发送器的 track 非空且其传输状态为 connected,则调用 setStreams() 将 track 添加到指定的 stream 中。
规范
| 规范 |
|---|
| WebRTC:浏览器中的实时通信 # dom-rtcrtpsender-setstreams |
浏览器兼容性
加载中…