VideoTrack - 表示 <video> 元素中的单个视频轨道

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

属性

selected

一个布尔值,它控制视频轨道是否处于活动状态。在任何给定时间,只有一个视频轨道可以处于活动状态,因此将一个轨道设置为 true,则其他轨道将处于非活动状态。

id 只读

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

kind 只读

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

label 只读

一个 DOMString,它为轨道提供了易于阅读的标签。例如,其 kind"sign"(手语)的轨道可能具有 “手语解释” 的标签。如果未提供标签,则此字符串为空。

language 只读

一个 DOMString,指定视频轨道的主要语言,如果未知,则为空字符串。该语言被指定为 BCP 47(RFC 5646)语言代码,例如 "en-US""pt-BR"

sourceBuffer 只读

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

使用注意

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

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

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

此第一个实例获取媒体上的第一个视频轨道:

var firstTrack = tracks[0];

下一个实例扫描媒体的所有视频轨道,激活用户首选语言(取自变量 userLanguage)中的第一个视频轨道。

for (var i = 0; i < tracks.length; i++) {
  if (tracks[i].language === userLanguage) {
    tracks[i].selected = true;
    break;
  }
});

language 为标准(RFC 5646)的格式。例如,对于美国英语,它将是 "en-US"

规范

规范 状态 备注
HTML Living Standard
VideoTrack 的定义
现行的标准 -

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 未知≤18 未知 未知 未知 支持
id 未知12 未知 未知 未知 支持
kind 未知12 未知 未知 未知 支持
label 未知12 未知 未知 未知 支持
language 未知12 未知 未知 未知 支持
selected 未知12 未知 未知 未知 支持
sourceBuffer 未知12 未知 未知 未知 支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 未知 未知 未知 未知 未知 未知 支持
id 未知 未知 未知 未知 未知 未知 支持
kind 未知 未知 未知 未知 未知 未知 支持
label 未知 未知 未知 未知 未知 未知 支持
language 未知 未知 未知 未知 未知 未知 支持
selected 未知 未知 未知 未知 未知 未知 支持
sourceBuffer 未知 未知 未知 未知 未知 未知 未知