RTCRtpSender: setStreams()-Methode

Die Methode setStreams() des RTCRtpSender assoziiert den Sender's track mit den angegebenen MediaStream-Objekten.

Syntax

js
setStreams()
setStreams(mediaStream1)
setStreams(mediaStream1, mediaStream2)
setStreams(mediaStream1, mediaStream2, /* …, */ mediaStreamN)

Parameter

mediaStreamN Optional

Eine beliebige Anzahl von MediaStream-Objekten, die als Argumente angegeben werden und die Streams identifizieren, zu denen der RTCRtpSender-track gehört. Wenn dieser Parameter nicht angegeben wird, werden keine neuen Streams mit dem Track assoziiert.

Rückgabewert

Keiner (undefined).

Ausnahmen

InvalidStateError DOMException

Wird ausgelöst, wenn die Verbindung des Senders geschlossen ist.

Beschreibung

setStreams() ist rein additiv. Es entfernt den Track nicht aus vorhandenen Streams; es fügt ihn neuen hinzu. Wenn Sie Streams angeben, zu denen der Track bereits gehört, bleibt dieser Stream unverändert.

Sobald der Track zu allen Streams hinzugefügt wurde, wird eine Neuverhandlung der Verbindung durch das Auslösen des negotiationneeded-Ereignisses an den RTCPeerConnection ausgelöst, zu dem der Sender gehört.

Beispiele

Dieses Beispiel fügt alle Tracks eines RTCPeerConnection dem angegebenen Stream hinzu.

js
function addTracksToStream(stream) {
  let senders = pc.getSenders();

  senders.forEach((sender) => {
    if (sender.track && sender.transport.state === connected) {
      sender.setStreams(stream);
    }
  });
}

Nach dem Aufruf der Methode getSenders() des RTCPeerConnection, um die Liste der Sender der Verbindung zu erhalten, iteriert die Funktion addTracksToStream() über die Liste. Für jeden Sender, wenn der Track des Senders nicht null und der Zustand seines Transports connected ist, rufen wir setStreams() auf, um den Track zu dem angegebenen stream hinzuzufügen.

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcrtpsender-setstreams

Browser-Kompatibilität

BCD tables only load in the browser