RTCPeerConnection: track Ereignis

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.

Das track-Ereignis wird an den ontrack-Ereignishandler auf RTCPeerConnections gesendet, nachdem eine neue Spur zu einem RTCRtpReceiver hinzugefügt wurde, der Teil der Verbindung ist.

Zum Zeitpunkt der Zustellung dieses Ereignisses wurde die neue Spur vollständig zur Peer-Verbindung hinzugefügt. Siehe Track-Ereignistypen für Details.

Dieses Ereignis ist nicht abbrechbar und wird nicht weitergeleitet.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.

js
addEventListener("track", (event) => { })

ontrack = (event) => { }

Ereignistyp

Ereigniseigenschaften

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

receiver Schreibgeschützt

Der RTCRtpReceiver, der von der hinzugefügten Spur in der RTCPeerConnection verwendet wird.

streams Schreibgeschützt Optional

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

track Schreibgeschützt

Die MediaStreamTrack, die zur Verbindung hinzugefügt wurde.

transceiver Schreibgeschützt

Der RTCRtpTransceiver, der von der neuen Spur verwendet wird.

Beispiele

Dieses Beispiel zeigt Code zur Erstellung einer neuen RTCPeerConnection und fügt einen neuen track-Ereignishandler hinzu.

js
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;
  },
  false,
);

Der Ereignishandler weist den ersten Stream der neuen Spur einem vorhandenen <video>-Element zu, das mithilfe der Variablen videoElement identifiziert wird.

Sie können die Ereignishandler-Funktion auch der ontrack-Eigenschaft zuweisen, anstatt addEventListener() zu verwenden.

js
pc.ontrack = (e) => {
  videoElement.srcObject = e.streams[0];
  hangupButton.disabled = false;
  return false;
};

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# event-track

Browser-Kompatibilität