AudioTrack

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

AudioTrack 接口表示从 HTML 介质元件中的一个单一的音轨, <audio><video>. 访问AudioTrack 对象的最常见用途是切换其enabled (en-US) 属性,以使轨道静音和取消静音。

属性

enabled (en-US)

一个布尔值,用于控制是否启用音轨的声音。设置此值false可使音轨的音频静音。

id (en-US) 只读

一个DOMString唯一标识媒体中的曲目。此 ID 可用于通过调用AudioTrackList.getTrackById() (en-US)来定位音轨列表中的特定轨道。如果媒体支持按媒体片段URI 规范按媒体片段搜索,则 ID 也可以用作 URL 的片段部分。

kind (en-US) 只读

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

label (en-US) 只读

A DOMString为轨道提供人类可读的标签。例如,一个音频评论轨道的电影可以有一个label"Commentary with director John Q. Public and actors John Doe and Jane Eod.",如果没有提供标签此字符串是空的。

language (en-US) 只读

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

sourceBuffer (en-US) 只读

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

使用说明

要获取AudioTrack给定媒体元素,请使用元素的audioTracks属性,该属性返回AudioTrackList (en-US)对象,你可以从中获取媒体中包含的各个曲目:

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

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

第一个示例获取媒体上的第一个音轨:

js
var firstTrack = tracks[0];

下一个示例扫描所有媒体的音轨,启用用户首选语言中的任何一种 (取自变量userLanguage) 并禁用任何其他语音。

js
tracks.forEach(function (track) {
  if (track.language === userLanguage) {
    track.enabled = true;
  } else {
    track.enabled = false;
  }
});

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

示例

参见 AudioTrack.label (en-US) 以获取简单示例,其中展示了如何获取指定媒体元素按轨道类别筛选后的包含轨道类别与标签的数组。

规范

Specification
HTML Standard
# audiotrack

浏览器兼容性

BCD tables only load in the browser