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
VideoTrackList
gesendet, die inHTMLMediaElement.videoTracks
gefunden wird. - Ereignisse, die Audio-Tracks betreffen, werden immer an die
AudioTrackList
gesendet, die inHTMLMediaElement.audioTracks
angegeben ist. - Ereignisse, die Text-Tracks betreffen, werden an das
TextTrackList
Objekt gesendet, das durchHTMLMediaElement.textTracks
angezeigt wird.
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
oderTextTrack
.
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…