RTCPeerConnection: Methode removeTrack()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Die removeTrack()
-Methode der RTCPeerConnection
-Schnittstelle teilt dem lokalen Ende der Verbindung mit, dass das Senden von Medien von dem angegebenen Track gestoppt werden soll, ohne den entsprechenden RTCRtpSender
tatsächlich aus der Liste der Sender zu entfernen, die von RTCPeerConnection.getSenders()
gemeldet wird. Wenn der Track bereits gestoppt ist oder sich nicht in der Senderliste der Verbindung befindet, hat diese Methode keine Wirkung.
Wenn die Verbindung bereits verhandelt wurde (signalingState
ist auf "stable"
gesetzt), wird sie als erneut zu verhandeln markiert; der Remote-Peer wird die Änderung erst erleben, wenn diese Verhandlung erfolgt. Ein negotiationneeded
-Ereignis wird an die RTCPeerConnection
gesendet, um das lokale Ende darüber zu informieren, dass diese Verhandlung erfolgen muss.
Syntax
removeTrack(sender)
Parameter
sender
-
Ein
RTCRtpSender
, der den zu entfernenden Sender der Verbindung spezifiziert.
Rückgabewert
undefined
.
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn die Verbindung nicht geöffnet ist.
Beispiel
Dieses Beispiel fügt einer Verbindung einen Videotrack hinzu und richtet einen Listener für eine Schaltfläche zum Schließen ein, der den Track entfernt, wenn der Benutzer auf die Schaltfläche klickt.
let pc;
let sender;
navigator.getUserMedia({ video: true }, (stream) => {
pc = new RTCPeerConnection();
const [track] = stream.getVideoTracks();
sender = pc.addTrack(track, stream);
});
document.getElementById("closeButton").addEventListener(
"click",
(event) => {
pc.removeTrack(sender);
pc.close();
},
false,
);
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcpeerconnection-removetrack |
Browser-Kompatibilität
BCD tables only load in the browser