VideoTrackList

有限可用性

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

VideoTrackList 接口用于表示包含在 <video> 元素中的视频轨道的列表,每个轨道由列表中单独的 VideoTrack 对象表示。

使用 HTMLMediaElement.videoTracks 检索此对象的实例。可以使用数组语法或函数(例如 forEach())访问各个轨道。

EventTarget VideoTrackList

实例属性

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

length 只读

列表中的轨道数。

selectedIndex 只读

当前选定轨道的索引(如果有),否则为 −1

实例方法

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

getTrackById()

返回在 VideoTrackList 中找到的 VideoTrack,其 id 与指定的字符串匹配。如果未找到匹配项,则返回 null

事件

addtrack

在将新的视频轨道添加到媒体元素时触发。也可通过 onaddtrack 属性访问。

change

当视频轨道被激活或停用时触发。也可通过 onchange 属性访问。

removetrack

在从媒体元素中删除新的视频轨道时触发。也可通过 onremovetrack 属性访问。

使用说明

除了能够直接访问媒体元素上存在的视频轨道外,VideoTrackList 还允许您在 addtrackremovetrack 事件上设置事件处理程序,以便您可以在轨道添加到或从媒体元素流中删除时检测到。

示例

获取媒体元素的视频轨道列表

要获取媒体元素的 VideoTrackList,请使用其 videoTracks 属性。

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

监视轨道计数更改

在此示例中,我们有一个应用程序,显示有关可用通道数量的信息。为了使其保持最新状态,已设置了 addtrackremovetrack 事件的处理程序。

js
videoTracks.onaddtrack = updateTrackCount;
videoTracks.onremovetrack = updateTrackCount;

function updateTrackCount(event) {
  trackCount = videoTracks.length;
  drawTrackCountIndicator(trackCount);
}

规范

规范
HTML 标准
# audiotracklist-and-videotracklist-objects

浏览器兼容性

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