VideoTrackList

可用性有限

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

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

通过 HTMLMediaElement.videoTracks 获取该对象的实例。可以通过数组语法或诸如 forEach() 等函数访问各个轨道。

EventTarget VideoTrackList

实例属性

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

length 只读

列表中轨道的数量。

selectedIndex 只读

当前选中轨道的索引(如果存在),否则为 −1

实例方法

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

getTrackById()

返回 VideoTrackListid 与指定字符串匹配的 VideoTrack。如果未找到匹配项,则返回 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

浏览器兼容性