Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

TrackEvent

Die TrackEvent-Schnittstelle der HTML DOM API wird für Ereignisse verwendet, die Änderungen an den verfügbaren Tracks eines HTML-Medienelements darstellen. Bei diesen Ereignissen handelt es sich um addtrack und removetrack.

TrackEvent darf nicht mit der RTCTrackEvent-Schnittstelle verwechselt werden, die für Tracks verwendet wird, die Teil einer RTCPeerConnection sind.

Ereignisse, die auf TrackEvent basieren, werden immer an einen der folgenden Typen von Medien-Track-Listen gesendet:

Event TrackEvent

Konstruktor

TrackEvent()

Erstellt und initialisiert ein neues TrackEvent-Objekt mit dem angegebenen Ereignistyp sowie optionalen zusätzlichen Eigenschaften.

Instanzeigenschaften

TrackEvent basiert auf Event. Daher sind die Eigenschaften von Event auch für TrackEvent-Objekte verfügbar.

track Schreibgeschützt

Das DOM-Track-Objekt, auf das sich das Ereignis bezieht. Wenn es nicht null ist, handelt es sich immer um ein Objekt eines der folgenden Medien-Track-Typen: AudioTrack, VideoTrack oder TextTrack.

Instanzmethoden

TrackEvent verfügt über keine eigenen Methoden. Da es jedoch auf Event basiert, stellt es die Methoden bereit, die für Event-Objekte verfügbar sind.

Beispiel

In diesem Beispiel wird eine Funktion namens handleTrackEvent() eingerichtet, die bei jedem addtrack- oder removetrack-Ereignis für das erste im Dokument gefundene <video>-Element aufgerufen wird.

js
const videoElem = document.querySelector("video");

videoElem.videoTracks.addEventListener("addtrack", handleTrackEvent);
videoElem.videoTracks.addEventListener("removetrack", handleTrackEvent);
videoElem.audioTracks.addEventListener("addtrack", handleTrackEvent);
videoElem.audioTracks.addEventListener("removetrack", handleTrackEvent);
videoElem.textTracks.addEventListener("addtrack", handleTrackEvent);
videoElem.textTracks.addEventListener("removetrack", handleTrackEvent);

function handleTrackEvent(event) {
  let trackKind;

  if (event.target instanceof VideoTrackList) {
    trackKind = "video";
  } else if (event.target instanceof AudioTrackList) {
    trackKind = "audio";
  } else if (event.target instanceof TextTrackList) {
    trackKind = "text";
  } else {
    trackKind = "unknown";
  }

  switch (event.type) {
    case "addtrack":
      console.log(`Added a ${trackKind} track`);
      break;
    case "removetrack":
      console.log(`Removed a ${trackKind} track`);
      break;
  }
}

Der Event-Handler verwendet den JavaScript-Operator instanceof, um zu bestimmen, bei welchem Track-Typ das Ereignis aufgetreten ist. Anschließend gibt er in der Konsole eine Meldung aus, die angibt, um welche Art von Track es sich handelt und ob er dem Element hinzugefügt oder daraus entfernt wird.

Spezifikationen

Spezifikation
HTML
# the-trackevent-interface

Browser-Kompatibilität