TextTrack: mode 属性
TextTrack 接口的 mode 属性是一个字符串,用于指定和控制文本轨道的模式:disabled(禁用)、hidden(隐藏)或 showing(显示)。您可以读取此值来确定当前模式,也可以更改此值来切换模式。
在实现自己的视频播放器控件时,Safari 还要求将 default 布尔属性设置为 true,以便显示字幕提示。
值
一个指示轨道当前模式的字符串。可能的值包括:
disabled-
文本轨道当前被禁用。虽然轨道的存在在 DOM 中可见,但用户代理其他方面会忽略它。没有活动提示,也没有触发事件,用户代理也不会尝试获取轨道的提示。这是默认值,除非文本轨道具有
default布尔属性,在这种情况下,默认值为showing。 -
文本轨道当前是活动的,但提示未显示。如果用户代理尚未尝试获取轨道的提示,它将很快执行此操作(从而填充轨道的
TextTrack.cues属性)。用户代理正在维护活动提示的列表(在轨道的TextTrack.activeCues属性中),并且在相应的时间会触发事件,即使文本未显示。 showing-
文本轨道当前已启用并且可见。如果轨道的提示列表尚未获取,它将很快被获取。
TextTrack.activeCues列表正在维护,并在适当的时间触发事件;轨道的文本也会根据样式和轨道的kind进行适当的绘制。如果文本轨道的default布尔属性被指定,则这是默认值。
用法说明
默认 mode 为 disabled,除非指定了 default 布尔属性,在这种情况下,默认 mode 为 showing。当文本轨道以 disabled 状态加载时,相应的 WebVTT 文件直到状态更改为 showing 或 hidden 才会加载。这样,在实际需要提示之前,可以避免资源获取和内存使用。
然而,这意味着,如果您希望在处理例如 load 事件时执行任何涉及轨道提示的操作——例如,在页面加载时处理提示的某些方面——并且轨道模式最初为 disabled,您必须将 mode 更改为 hidden 或 showing 才能触发提示的加载。
当模式为 showing 时,文本轨道会被执行。这种执行的确切外观和方式取决于每个文本轨道的 kind。一般来说,
kind为"subtitles"或"captions"的轨道会渲染提示并叠加在视频上方。kind为"descriptions"的轨道会以非视觉形式呈现(例如,可能会朗读文本来描述视频中的动作)。kind为"chapters"的轨道会被用户代理、网站或 Web 应用程序用于构建和呈现导航命名章节的界面,其中列表中的每个提示代表媒体中的一个章节。用户随后可以导航到所需的章节,该章节从提示的开始位置开始,到提示的结束位置结束。
示例
在此示例中,我们配置文本轨道的提示,以便每次提示结束时,视频都会自动暂停播放。这是通过将每个提示的 TextTrackCue.pauseOnExit 属性设置为 true 来实现的。但是,为了确保轨道提示可用,我们首先将 mode 设置为 showing。
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 |
浏览器兼容性
加载中…