TextTrack: mode 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

TextTrack 接口的 mode 属性是一个字符串,用于指定和控制文本轨道的模式:disabled(禁用)、hidden(隐藏)或 showing(显示)。您可以读取此值来确定当前模式,也可以更改此值来切换模式。

在实现自己的视频播放器控件时,Safari 还要求将 default 布尔属性设置为 true,以便显示字幕提示。

一个指示轨道当前模式的字符串。可能的值包括:

disabled

文本轨道当前被禁用。虽然轨道的存在在 DOM 中可见,但用户代理其他方面会忽略它。没有活动提示,也没有触发事件,用户代理也不会尝试获取轨道的提示。这是默认值,除非文本轨道具有 default 布尔属性,在这种情况下,默认值为 showing

hidden

文本轨道当前是活动的,但提示未显示。如果用户代理尚未尝试获取轨道的提示,它将很快执行此操作(从而填充轨道的 TextTrack.cues 属性)。用户代理正在维护活动提示的列表(在轨道的 TextTrack.activeCues 属性中),并且在相应的时间会触发事件,即使文本未显示。

showing

文本轨道当前已启用并且可见。如果轨道的提示列表尚未获取,它将很快被获取。 TextTrack.activeCues 列表正在维护,并在适当的时间触发事件;轨道的文本也会根据样式和轨道的 kind 进行适当的绘制。如果文本轨道的 default 布尔属性被指定,则这是默认值。

用法说明

默认 modedisabled,除非指定了 default 布尔属性,在这种情况下,默认 modeshowing。当文本轨道以 disabled 状态加载时,相应的 WebVTT 文件直到状态更改为 showinghidden 才会加载。这样,在实际需要提示之前,可以避免资源获取和内存使用。

然而,这意味着,如果您希望在处理例如 load 事件时执行任何涉及轨道提示的操作——例如,在页面加载时处理提示的某些方面——并且轨道模式最初为 disabled,您必须将 mode 更改为 hiddenshowing 才能触发提示的加载。

当模式为 showing 时,文本轨道会被执行。这种执行的确切外观和方式取决于每个文本轨道的 kind。一般来说,

  • kind"subtitles""captions" 的轨道会渲染提示并叠加在视频上方。
  • kind"descriptions" 的轨道会以非视觉形式呈现(例如,可能会朗读文本来描述视频中的动作)。
  • kind"chapters" 的轨道会被用户代理、网站或 Web 应用程序用于构建和呈现导航命名章节的界面,其中列表中的每个提示代表媒体中的一个章节。用户随后可以导航到所需的章节,该章节从提示的开始位置开始,到提示的结束位置结束。

示例

在此示例中,我们配置文本轨道的提示,以便每次提示结束时,视频都会自动暂停播放。这是通过将每个提示的 TextTrackCue.pauseOnExit 属性设置为 true 来实现的。但是,为了确保轨道提示可用,我们首先将 mode 设置为 showing

js
let trackElem = document.querySelector("track");
let track = trackElem.track;

track.mode = "showing";

for (const cue of track.cues) {
  cue.pauseOnExit = true;
}

规范

规范
HTML
# dom-texttrack-mode-dev

浏览器兼容性

另见