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:
- Ereignisse, die Video-Tracks betreffen, werden immer an die
VideoTrackListgesendet, die sich inHTMLMediaElement.videoTracksbefindet. - Ereignisse, die Audio-Tracks betreffen, werden immer an die
AudioTrackListgesendet, die inHTMLMediaElement.audioTracksangegeben ist. - Ereignisse, die Text-Tracks betreffen, werden an das
TextTrackList-Objekt gesendet, auf dasHTMLMediaElement.textTracksverweist.
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.
trackSchreibgeschützt-
Das DOM-Track-Objekt, auf das sich das Ereignis bezieht. Wenn es nicht
nullist, handelt es sich immer um ein Objekt eines der folgenden Medien-Track-Typen:AudioTrack,VideoTrackoderTextTrack.
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.
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> |