TextTrack

Baseline 广泛可用 *

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

* 此特性的某些部分可能存在不同级别的支持。

TextTrack 接口是 WebVTT API 的一部分,代表与媒体元素关联的文本轨道。

此类型的对象拥有将在视频不同时间点显示的 VTTCue 对象列表。

可以使用 HTMLMediaElement.addTextTrack() 方法将 TextTrack 对象添加到 HTMLVideoElementHTMLAudioElement 元素中,这与在 <video><audio> 元素中使用 <track> 元素声明式添加文本轨道具有相同效果。TextTrack 对象存储在 TextTrackList 中,可以通过 HTMLMediaElement.textTracks 属性检索。

EventTarget TextTrack

实例属性

此接口还继承了 EventTarget 的属性。

TextTrack.activeCues 只读

一个 TextTrackCueList 对象,列出了当前活动的文本轨道提示集。当媒体的当前播放位置介于提示的开始和结束时间之间时,轨道提示是活动的。因此,对于字幕等显示提示,活动提示正在被显示。

TextTrack.cues 只读

一个 TextTrackCueList,其中包含轨道的所有提示。

TextTrack.id 只读

一个字符串,用于标识轨道(如果它有 ID)。如果没有 ID,则此值为一个空字符串 ("")。如果 TextTrack<track> 元素相关联,则轨道的 ID 与元素的 ID 匹配。

TextTrack.inBandMetadataTrackDispatchType 只读

返回一个字符串,指示轨道的带内元数据轨道分派类型。

TextTrack.kind 只读

返回一个字符串,指示 TextTrack 描述的是哪种类型的文本轨道。它必须是允许的值之一。

TextTrack.label 只读

一个人类可读的字符串,包含文本轨道的标签(如果存在);否则,这是一个空字符串 (""),在这种情况下,如果轨道的标签需要暴露给用户,您的代码可能需要使用轨道的其他属性生成自定义标签。

TextTrack.language 只读

一个字符串,指定文本轨道内容的编写语言。该值必须是有效的 BCP 47 语言标签,例如,美国英语为 "en-US",巴西葡萄牙语为 "pt-BR"

TextTrack.mode

一个字符串,指定轨道的当前模式,该模式必须是允许的值之一。更改此属性的值会将轨道的当前模式更改为匹配。默认值为 disabled,除非 <track> 元素的 default 布尔属性设置为 true — 在这种情况下,默认模式为 showing

sourceBuffer 只读

创建轨道的 SourceBuffer。如果轨道不是由 SourceBuffer 创建,或者 SourceBuffer 已从其父媒体源的 MediaSource.sourceBuffers 属性中移除,则返回 null。

实例方法

此接口还继承了 EventTarget 的方法。

注意:TextTrackCue 接口是一个抽象类,用作其他提示接口(如 VTTCue)的父类。因此,在添加或删除提示时,您将传入一个继承自 TextTrackCue 的提示类型。

TextTrack.addCue()

将一个提示(指定为 TextTrackCue 对象)添加到轨道的提示列表中。

TextTrack.removeCue()

从轨道的提示列表中删除一个提示(指定为 TextTrackCue 对象)。

事件

cuechange

当提示进入和退出时触发。给定的文本提示在进入时出现,在退出时消失。也可通过 oncuechange 属性访问。

示例

以下示例向视频添加一个新的 TextTrack,然后使用 TextTrack.mode 设置其显示。

js
let video = document.querySelector("video");
let track = video.addTextTrack("captions", "Captions", "en");
track.mode = "showing";

规范

规范
HTML
# texttrack

浏览器兼容性

另见