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:
- Ereignisse, die Video-Tracks betreffen, werden immer an die
VideoTrackListgesendet, die inHTMLMediaElement.videoTracksgefunden wird. - Ereignisse, die Audio-Tracks betreffen, werden immer an die
AudioTrackListgesendet, die inHTMLMediaElement.audioTracksangegeben ist. - Ereignisse, die Text-Tracks betreffen, werden an das
TextTrackListObjekt gesendet, das durchHTMLMediaElement.textTracksangezeigt wird.
Konstruktor
TrackEvent()-
Erstellt und initialisiert ein neues
TrackEventObjekt 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.
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 Medientrack-Typen:AudioTrack,VideoTrackoderTextTrack.
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.
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
Loading…