TrackEvent
interface, which is part of the HTML DOM specification, is used for events which represent changes to a set of available tracks on an HTML media element; these events are
addtrack
and
removetrack
.
It's important not to confuse
TrackEvent
采用
RTCTrackEvent
interface, which is used for tracks which are part of an
RTCPeerConnection
.
Events based on
TrackEvent
are always sent to one of the media track list types:
VideoTrackList
found in
HTMLMediaElement.videoTracks
AudioTrackList
specified in
HTMLMediaElement.audioTracks
TextTrackList
object indicated by
HTMLMediaElement.textTracks
.
TrackEvent()
TrackEvent
object with the event type specified, as well as optional additional properties.
TrackEvent
基于
事件
, so properties of
事件
are also available on
TrackEvent
对象。
track
只读
null
, this is always an object of one of the media track types:
AudioTrack
,
VideoTrack
,或
TextTrack
).
TrackEvent
has no methods of its own; however, it is based on
事件
, so it provides the methods available on
事件
对象。
This example sets up a function,
handleTrackEvent()
, which is callled for any
addtrack
or
removetrack
event on the first
<video>
element found in the document.
var 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) {
var 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;
}
}
The event handler uses the JavaScript
instanceof
operator to determine which type of track the event occurred on, then outputs to console a message indicating what kind of track it is and whether it's being added to or removed from the element.
| 规范 | 状态 | 注释 |
|---|---|---|
|
HTML 实时标准
The definition of 'TrackEvent' in that specification. |
实时标准 | 初始定义。 |
|
HTML5
The definition of 'TrackEvent' in that specification. |
推荐 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
TrackEvent
|
Chrome Yes | Edge ≤79 | Firefox ? | IE ? | Opera ? | Safari ? | WebView Android Yes | Chrome Android Yes | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android Yes |
track
|
Chrome Yes | Edge ≤79 | Firefox ? | IE ? | Opera ? | Safari ? | WebView Android Yes | Chrome Android Yes | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android Yes |
完整支持
兼容性未知
TrackEvent
BeforeUnloadEvent
DOMStringMap
ErrorEvent
GlobalEventHandlers
HTMLAnchorElement
HTMLAreaElement
HTMLAudioElement
HTMLBRElement
HTMLBaseElement
HTMLBaseFontElement
HTMLBodyElement
HTMLButtonElement
HTMLCanvasElement
HTMLContentElement
HTMLDListElement
HTMLDataElement
HTMLDataListElement
HTMLDialogElement
HTMLDivElement
HTMLDocument
HTMLElement
HTMLEmbedElement
HTMLFieldSetElement
HTMLFormControlsCollection
HTMLFormElement
HTMLFrameSetElement
HTMLHRElement
HTMLHeadElement
HTMLHeadingElement
HTMLHtmlElement
HTMLIFrameElement
HTMLImageElement
HTMLInputElement
HTMLIsIndexElement
HTMLKeygenElement
HTMLLIElement
HTMLLabelElement
HTMLLegendElement
HTMLLinkElement
HTMLMapElement
HTMLMediaElement
HTMLMetaElement
HTMLMeterElement
HTMLModElement
HTMLOListElement
HTMLObjectElement
HTMLOptGroupElement
HTMLOptionElement
HTMLOptionsCollection
HTMLOutputElement
HTMLParagraphElement
HTMLParamElement
HTMLPictureElement
HTMLPreElement
HTMLProgressElement
HTMLQuoteElement
HTMLScriptElement
HTMLSelectElement
HTMLShadowElement
HTMLSourceElement
HTMLSpanElement
HTMLStyleElement
HTMLTableCaptionElement
HTMLTableCellElement
HTMLTableColElement
HTMLTableDataCellElement
HTMLTableElement
HTMLTableHeaderCellElement
HTMLTableRowElement
HTMLTableSectionElement
HTMLTemplateElement
HTMLTextAreaElement
HTMLTimeElement
HTMLTitleElement
HTMLTrackElement
HTMLUListElement
HTMLUnknownElement
HTMLVideoElement
HashChangeEvent
历史
ImageData
定位
MessageChannel
MessageEvent
MessagePort
Navigator
NavigatorGeolocation
NavigatorID
NavigatorLanguage
NavigatorOnLine
NavigatorPlugins
PageTransitionEvent
Plugin
PluginArray
PopStateEvent
PortCollection
PromiseRejectionEvent
RadioNodeList
Transferable
ValidityState
Window
WindowBase64
WindowEventHandlers
WindowTimers