VideoTrack

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

VideoTrack 接口代表来自 <video> 元素的单个视频轨道。

访问 VideoTrack 对象最常见的用途是切换其 selected 属性,从而使其成为其 <video> 元素的活动视频轨道。

实例属性

selected

一个布尔值,用于控制视频轨道是否处于活动状态。在任何给定时间只能有一个视频轨道处于活动状态,因此将一个轨道的此属性设置为 true,而另一个轨道处于活动状态时,将使该另一个轨道失效。

id 只读

一个字符串,唯一标识媒体中的轨道。此 ID 可用于通过调用 VideoTrackList.getTrackById() 来定位视频轨道列表中的特定轨道。如果媒体支持按媒体片段进行查找(根据 Media Fragments URI 规范),则该 ID 也可以用作 URL 的片段部分。

kind 只读

一个字符串,指定轨道的所属类别。例如,主视频轨道的 kind"main"

label 只读

一个字符串,为轨道提供人类可读的标签。例如,kind"sign" 的轨道可能有一个 label"A sign-language interpretation"。如果未提供标签,则此字符串为空。

language 只读

一个字符串,指定视频轨道的首选语言,如果未知则为空字符串。语言指定为 BCP 47 语言标记,例如 "en-US""pt-BR"

sourceBuffer 只读

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

用法说明

要获取给定媒体元素的 VideoTrack,请使用该元素的 videoTracks 属性,该属性返回一个 VideoTrackList 对象,您可以通过该对象获取媒体中包含的各个轨道。

js
const el = document.querySelector("video");
const tracks = el.videoTracks;

然后,您可以使用数组语法或像 forEach() 这样的函数来访问媒体的各个轨道。

第一个示例获取媒体上的第一个视频轨道

js
const firstTrack = tracks[0];

下一个示例将遍历媒体的所有视频轨道,激活用户首选语言(来自变量 userLanguage)的第一个视频轨道。

js
for (const track of tracks) {
  if (track.language === userLanguage) {
    track.selected = true;
    break;
  }
}

language 指定为有效的 BCP 47 语言标记,例如,美国英语为 "en-US"

规范

规范
HTML
# videotrack

浏览器兼容性