<track>: The Embed Text Track element

<track> HTML 元素用作媒体元素 <audio><video> 的子元素。它允许你指定定时文本轨道(或基于时间的数据),例如自动处理字幕。轨道的格式为 网络 VTT 格式.vtt 文件) - 网络视频文本轨道。

¥The <track> HTML 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.

Try it

属性

¥Attributes

该元素包括 全局属性

¥This element includes the global attributes.

default

该属性指示应启用该轨道,除非用户的首选项表明另一个轨道更合适。这只能用于每个媒体元素的一个 track 元素。

kind

文本轨道的用途。如果省略,默认类型为 subtitles。如果该属性包含无效值,它将使用 metadata(52 之前的 Chrome 版本将无效值视为 subtitles)。允许使用以下关键字:

  • subtitles
    • 字幕提供观众无法理解的内容的翻译。例如,英语电影中非英语的语音或文本。
    • 字幕可能包含附加内容,通常是额外的背景信息。例如,星球大战电影开头的文本,或场景的日期、时间和地点。
  • captions
    • 隐藏式字幕提供转录,也可能提供音频翻译。
    • 它可能包括重要的非语言信息,例如音乐提示或声音效果。它可以指示提示的来源(例如音乐、文本、角色)。
    • 适合耳聋或静音时的用户。
  • descriptions
    • 视频内容的文字描述。
    • 适合盲人或看不到视频的用户。
  • chapters
    • 章节标题旨在当用户导航媒体资源时使用。
  • metadata
    • 脚本使用的轨道。对用户不可见。
label

用户可读的文本轨道标题,浏览器在列出可用文本轨道时使用该标题。

src

轨道的地址(.vtt 文件)。必须是有效的 URL。必须指定此属性,并且其 URL 值必须与文档具有相同的来源 — 除非 track 元素的 <audio><video> 父元素具有 crossorigin 属性。

srclang

轨道文本数据的语言。它必须是有效的 BCP 47 语言标签。如果 kind 属性设置为 subtitles,则必须定义 srclang

使用说明

¥Usage notes

跟踪数据类型

¥Track data types

track 添加到媒体的数据类型在 kind 属性中设置,该属性可以取值 subtitlescaptionsdescriptionschaptersmetadata。该元素指向包含定时文本的源文件,当用户请求其他数据时浏览器会公开该文本。

¥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.

一个媒体元素不能有多个具有相同 kindsrclanglabeltrack

¥A media element cannot have more than one track with the same kind, srclang, and label.

检测提示变化

¥Detecting cue changes

每次当前呈现的提示发生更改时,由 track 属性指示的基础 TextTrack 都会收到 cuechange 事件。即使轨道未与媒体元素关联,也会发生这种情况。

¥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.

如果轨道与媒体元素关联,则使用 <track> 元素作为 <audio><video> 元素的子元素,cuechange 事件也会发送到 HTMLTrackElement

¥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.

js
let textTrackElem = document.getElementById("texttrack");

textTrackElem.addEventListener("cuechange", (event) => {
  let cues = event.target.track.activeCues;
});

示例

¥Examples

html
<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>

技术总结

¥Technical summary

内容类别 没有任何
允许的内容 没有任何;这是 void element
标签遗漏 必须有开始标记,并且不能有结束标记。
允许的父级

媒体元素,<audio><video>

隐式 ARIA 角色 没有对应的角色
允许的 ARIA 角色 不允许 role
DOM 接口 HTMLTrackElement

规范

Specification
HTML Standard
# the-track-element

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看