RTCPeerConnection: track-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Das track-Ereignis wird an den ontrack-Event-Handler einer RTCPeerConnection gesendet, nachdem einem RTCRtpReceiver, der Teil der Verbindung ist, ein neuer Track hinzugefügt wurde.
Wenn dieses Ereignis ausgelöst wird, wurde der neue Track bereits vollständig zur Peer-Verbindung hinzugefügt. Einzelheiten finden Sie unter Typen von Track-Ereignissen.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergereicht.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("track", (event) => { })
Alternativ können Sie der Event-Handler-Eigenschaft der Schnittstelle eine Funktion zuweisen:
ontrack = (event) => { }
Ereignistyp
Ein RTCTrackEvent. Erbt von Event.
Beispiele
Dieses Beispiel zeigt Code, der eine neue RTCPeerConnection erstellt und anschließend einen neuen Event-Handler für track hinzufügt.
pc = new RTCPeerConnection({
iceServers: [
{
urls: "turn:fake.turn-server.url",
username: "some username",
credential: "some-password",
},
],
});
pc.addEventListener("track", (e) => {
videoElement.srcObject = e.streams[0];
hangupButton.disabled = false;
});
Der Event-Handler weist den ersten Stream des neuen Tracks einem vorhandenen <video>-Element zu, das über die Variable videoElement identifiziert wird.
Sie können die Event-Handler-Funktion auch der Eigenschaft ontrack zuweisen, anstatt addEventListener() zu verwenden. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über ontrack hinzugefügte Event-Listener ersetzt werden.
pc.ontrack = (e) => {
videoElement.srcObject = e.streams[0];
hangupButton.disabled = false;
return false;
};
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-track> |