RTCTrackEvent

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 WebRTC API-Schnittstelle RTCTrackEvent repräsentiert das track-Ereignis, das gesendet wird, wenn ein neuer MediaStreamTrack zu einem RTCRtpReceiver hinzugefügt wird, der Teil der RTCPeerConnection ist.

Das Zielobjekt ist das RTCPeerConnection-Objekt, zu dem der Track hinzugefügt wird.

Dieses Ereignis wird von der WebRTC-Schicht an die Website oder Anwendung gesendet, daher werden Sie normalerweise kein RTCTrackEvent selbst instanziieren müssen.

Event RTCTrackEvent

Konstruktor

RTCTrackEvent()

Erstellt und gibt ein neues RTCTrackEvent-Objekt zurück. Sie werden wahrscheinlich keine neuen Track-Ereignisse selbst erstellen müssen, da diese typischerweise von der WebRTC-Infrastruktur erstellt und an den ontrack-Ereignishandler der Verbindung gesendet werden.

Instanz-Eigenschaften

Da RTCTrackEvent auf Event basiert, sind dessen Eigenschaften ebenfalls verfügbar.

receiver Nur lesbar

Der RTCRtpReceiver, der durch den Track verwendet wird, der zu der RTCPeerConnection hinzugefügt wurde.

streams Nur lesbar Optional

Ein Array von MediaStream-Objekten, von denen jedes einen der Medienstreams repräsentiert, zu denen der hinzugefügte track gehört. Standardmäßig ist das Array leer, was auf einen streamlosen Track hinweist.

track Nur lesbar

Der MediaStreamTrack, der zur Verbindung hinzugefügt wurde.

transceiver Nur lesbar

Der RTCRtpTransceiver, der durch den neuen Track verwendet wird.

Track-Ereignistypen

Es gibt nur einen Typ von Track-Ereignis.

track

Das track-Ereignis wird an die RTCPeerConnection gesendet, wenn ein neuer Track zur Verbindung hinzugefügt wurde. Zu dem Zeitpunkt, zu dem das track-Ereignis an den ontrack-Handler der RTCPeerConnection geliefert wird, hat das neue Medium seine Verhandlung für einen spezifischen RTCRtpReceiver abgeschlossen (der durch die receiver-Eigenschaft des Ereignisses angegeben ist).

Zusätzlich ist der durch den Receiver angegebene track derselbe wie der durch das Ereignis angegebene track, und der Track wurde zu allen zugehörigen entfernten MediaStream-Objekten hinzugefügt.

Sie können einen track-Ereignislistener hinzufügen, um benachrichtigt zu werden, wenn der neue Track verfügbar ist, damit Sie beispielsweise dessen Medien an ein <video>-Element anhängen können, entweder mit RTCPeerConnection.addEventListener() oder der ontrack-Ereignishandler-Eigenschaft.

Hinweis: Es kann hilfreich sein, sich daran zu erinnern, dass Sie das track-Ereignis erhalten, wenn ein neuer eingehender Track zu Ihrer Verbindung hinzugefügt wurde, und Sie rufen addTrack() auf, um einen Track zum entfernten Ende der Verbindung hinzuzufügen, was ein track-Ereignis beim entfernten Peer auslöst.

Beispiel

Dieses einfache Beispiel erstellt einen Ereignislistener für das track-Ereignis, das die srcObject des <video>-Elements mit der ID video-box auf den ersten Stream in der im streams-Array des Ereignisses übergebenen Liste setzt.

js
peerConnection.addEventListener(
  "track",
  (e) => {
    let videoElement = document.getElementById("video-box");
    videoElement.srcObject = e.streams[0];
  },
  false,
);

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtctrackevent

Browser-Kompatibilität

BCD tables only load in the browser