TrackEvent
Интерфейс TrackEvent API HTML DOM используется для событий, которые представляют изменения в наборе доступных дорожек на элементе HTML-медиа; эти события addtrack и removetrack.
Важно не путать TrackEvent с интерфейсом RTCTrackEvent, который используется для дорожек, являющихся частью RTCPeerConnection.
События, основанные на TrackEvent, всегда отправляются в один из типов списков медиа-дорожек:
- События, связанные с видеодорожками, всегда отправляются в
VideoTrackList, найденный вHTMLMediaElement.videoTracks - События, связанные с аудиодорожками, всегда отправляются в
AudioTrackList, указанный вHTMLMediaElement.audioTracks - События, влияющие на текстовые дорожки, отправляются в объект
TextTrackList, указанный вHTMLMediaElement.textTracks.
Конструктор
TrackEvent()-
Создаёт и инициализирует новый объект
TrackEventс указанным типом события, а также с необязательными дополнительными свойствами.
Свойства экземпляра
TrackEvent основан на Event, поэтому свойства Event также доступны для объектов TrackEvent.
-
trackТолько для чтения -
Объект DOM-дорожки, к которой относится событие. Если это не
null, это всегда объект одного из типов медиа-дорожек:AudioTrack,VideoTrackилиTextTrack.
Методы экземпляра
TrackEvent не имеет собственных методов; однако, он основан на Event, поэтому предоставляет методы, доступные для объектов Event.
Пример
В этом примере создаётся функция handleTrackEvent(), которая вызывается для любого события addtrack или removetrack на первом элементе <video>, найденном в документе.
const videoElem = document.querySelector("video");
videoElem.videoTracks.addEventListener("addtrack", handleTrackEvent, false);
videoElem.videoTracks.addEventListener("removetrack", handleTrackEvent, false);
videoElem.audioTracks.addEventListener("addtrack", handleTrackEvent, false);
videoElem.audioTracks.addEventListener("removetrack", handleTrackEvent, false);
videoElem.textTracks.addEventListener("addtrack", handleTrackEvent, false);
videoElem.textTracks.addEventListener("removetrack", handleTrackEvent, false);
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;
}
}
Обработчик события использует оператор JavaScript instanceof, чтобы определить, на каком типе дорожки произошло событие, а затем выводит сообщение в консоль, указывающее, какой это тип дорожки и добавляется ли она или удаляется из элемента.
Спецификации
| Спецификация |
|---|
| HTML # the-trackevent-interface |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
TrackEvent |
23 | 14 | 27 | 15 | 6 | 25 | 27 | 14 | 7 | 1.5 | 4.4 |
TrackEvent |
23 | 12 | 27 | ≤12.1 | 6 | 25 | 27 | ≤12.1 | 7 | 1.5 | 4.4 |
track |
23 | 12 | 27 | ≤12.1 | 6 | 25 | 27 | ≤12.1 | 7 | 1.5 | 4.4 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent