VideoTrack

有限可用性

此功能并非基线功能,因为它在某些最广泛使用的浏览器中无法正常工作。

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

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

实例属性

selected

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

id 只读

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

kind 只读

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

label 只读

一个字符串,提供轨道的用户可读标签。例如,一个 kind"sign" 的轨道可能具有 "手语解释"label。如果没有提供标签,则此字符串为空。

language 只读

一个字符串,指定视频轨道的首要语言,如果未知则为空字符串。语言以 BCP 47 (RFC 5646) 语言代码指定,例如 "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 采用标准 (RFC 5646) 格式。例如,对于美式英语,这将是 "en-US"

规范

规范
HTML 标准
# videotrack

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。