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