HTML
<track>
element
is used as a child of the media elements,
<audio>
and
<video>
. It lets you specify timed text tracks (or time-based data), for example to automatically handle subtitles.
The tracks are formatted in
WebVTT format
(
.vtt
files) — Web Video Text Tracks.
| 内容类别 | None |
|---|---|
| 准许内容 | None, it is an empty element . |
| Tag omission | As it is a void element, the start tag must be present and the end tag must not be present. |
| Permitted parents |
A media element,
<audio>
or
<video>
.
|
| Implicit ARIA role | 无对应角色 |
| Permitted ARIA roles |
No
role
permitted
|
| DOM 接口 |
HTMLTrackElement
|
此元素包括 全局属性 .
default
track
element per media element.
kind
subtitles
. If the attribute contains an invalid value, it will use
metadata
(Versions of Chrome earlier than 52 treated an invalid value as
subtitles
). The following keywords are allowed:
subtitles
captions
descriptions
chapters
metadata
label
A user-readable title of the text track which is used by the browser when listing available text tracks.
src
.vtt
file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the
<audio>
or
<video>
parent element of the
track
element has a
crossorigin
属性。
srclang
kind
attribute is set to
subtitles
,那么
srclang
必须有定义。
The type of data that
track
adds to the media is set in the
kind
attribute, which can take values of
subtitles
,
captions
,
descriptions
,
chapters
or
metadata
. The element points to a source file containing timed text that the browser exposes when the user requests additional data.
A
media
element cannot have more than one
track
with the same
kind
,
srclang
,和
label
.
The underlying
TextTrack
, indicated by the
track
property, receives a
cuechange
event every time the currently-presented cue is changed. This happens even if the track isn't associated with a media element.
If the track
is
associated with a media element, using the
<track>
element as a child of the
<audio>
or
<video>
element, the
cuechange
event is also sent to the
HTMLTrackElement
.
let textTrackElem = document.getElementById("texttrack");
textTrackElem.addEventListener("cuechange", (event) => {
let cues = event.target.track.activeCues;
});
In addition, you can use the
oncuechange
event handler:
let textTrackElem = document.getElementById("texttrack");
textTrackElem.oncuechange = (event) => {
let cues = event.target.track.activeCues;
});
<video controls poster="/images/sample.gif">
<source src="sample.mp4" type="video/mp4">
<source src="sample.ogv" type="video/ogv">
<track kind="captions" src="sampleCaptions.vtt" srclang="en">
<track kind="descriptions"
src="sampleDescriptions.vtt" srclang="en">
<track kind="chapters" src="sampleChapters.vtt" srclang="en">
<track kind="subtitles" src="sampleSubtitles_de.vtt" srclang="de">
<track kind="subtitles" src="sampleSubtitles_en.vtt" srclang="en">
<track kind="subtitles" src="sampleSubtitles_ja.vtt" srclang="ja">
<track kind="subtitles" src="sampleSubtitles_oz.vtt" srclang="oz">
<track kind="metadata" src="keyStage1.vtt" srclang="en"
label="Key Stage 1">
<track kind="metadata" src="keyStage2.vtt" srclang="en"
label="Key Stage 2">
<track kind="metadata" src="keyStage3.vtt" srclang="en"
label="Key Stage 3">
<!-- Fallback -->
...
</video>
| 规范 | 状态 | 注释 |
|---|---|---|
|
HTML 实时标准
The definition of 'track element' in that specification. |
实时标准 | |
|
HTML5
The definition of 'track element' in that specification. |
推荐 | 初始定义 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
track
|
Chrome 完整支持 23 | Edge 完整支持 12 |
Firefox
完整支持
31
|
IE 完整支持 10 | Opera 完整支持 12.1 | Safari 完整支持 6 |
WebView Android
完整支持
Yes
注意事项
|
Chrome Android
完整支持
25
注意事项
|
Firefox Android
完整支持
31
|
Opera Android ? | Safari iOS 完整支持 6 |
Samsung Internet Android
完整支持
1.5
注意事项
|
default
|
Chrome 完整支持 23 | Edge 完整支持 12 |
Firefox
完整支持
31
|
IE 完整支持 10 | Opera 完整支持 12.1 | Safari 完整支持 6 | WebView Android 完整支持 4.4 | Chrome Android 完整支持 25 |
Firefox Android
完整支持
31
|
Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 1.5 |
kind
|
Chrome 完整支持 23 | Edge 完整支持 12 |
Firefox
完整支持
31
|
IE 完整支持 10 | Opera 完整支持 12.1 | Safari 完整支持 6 | WebView Android 完整支持 4.4 | Chrome Android 完整支持 25 |
Firefox Android
完整支持
31
|
Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 1.5 |
label
|
Chrome 完整支持 23 | Edge 完整支持 12 |
Firefox
完整支持
31
|
IE 完整支持 10 | Opera 完整支持 12.1 | Safari 完整支持 6 | WebView Android 完整支持 4.4 | Chrome Android 完整支持 25 |
Firefox Android
完整支持
31
|
Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 1.5 |
src
|
Chrome 完整支持 23 | Edge 完整支持 12 |
Firefox
完整支持
31
|
IE 完整支持 10 | Opera 完整支持 12.1 | Safari 完整支持 6 | WebView Android 完整支持 4.4 | Chrome Android 完整支持 25 |
Firefox Android
完整支持
31
|
Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 1.5 |
srclang
|
Chrome 完整支持 23 | Edge 完整支持 12 |
Firefox
完整支持
31
|
IE 完整支持 10 | Opera 完整支持 12.1 | Safari 完整支持 6 | WebView Android 完整支持 4.4 | Chrome Android 完整支持 25 |
Firefox Android
完整支持
31
|
Opera Android ? | Safari iOS ? | Samsung Internet Android 完整支持 1.5 |
完整支持
兼容性未知
见实现注意事项。
用户必须明确启用此特征。