語法
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 |
瀏覽器相容性
載入中…