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

Das TrackEvent Interface der HTML DOM API wird für Ereignisse verwendet, die Änderungen an einem Satz verfügbarer Tracks auf einem HTML-Medienelement darstellen; diese Ereignisse sind addtrack und removetrack.

Es ist wichtig, TrackEvent nicht mit dem RTCTrackEvent Interface zu verwechseln, das für Tracks verwendet wird, die Teil einer RTCPeerConnection sind.

Ereignisse, die auf TrackEvent basieren, werden immer an eine der Medientrack-Listenarten gesendet:

Event TrackEvent

Konstruktor

TrackEvent()

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

Instanz-Eigenschaften

TrackEvent basiert auf Event, daher stehen die Eigenschaften von Event auch auf TrackEvent Objekten zur Verfügung.

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 Medientrack-Typen: AudioTrack, VideoTrack oder TextTrack.

Instanz-Methoden

TrackEvent hat keine eigenen Methoden; es basiert jedoch auf Event, sodass es die Methoden bietet, die auf Event Objekten verfügbar sind.

Beispiel

Dieses Beispiel richtet eine Funktion handleTrackEvent() ein, die für jedes addtrack oder removetrack Ereignis auf das erste <video> Element im Dokument 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 Ereignis-Handler verwendet den JavaScript instanceof Operator, um festzustellen, auf welchem Typ Track das Ereignis aufgetreten ist, und gibt dann eine Meldung an die Konsole aus, die angibt, um welche Art von Track es sich handelt und ob es dem Element hinzugefügt oder daraus entfernt wird.

Spezifikationen

Specification
HTML
# the-trackevent-interface

Browser-Kompatibilität