AudioTrack - 表示来自 HTML 媒体元素 <audio> 或 <video> 的单个音频轨道
AudioTrack
接口表示来自 HTML 媒体元素 <audio>
或 <video>
的单个音频轨道。访问 AudioTrack
对象的最常见用途是切换其 enabled
属性,以使轨道静音和取消静音。
属性
enabled
一个布尔值,控制是否启用音轨的声音。将此值设置为 false
会使轨道的音频静音。
id
只读
一个 DOMString
,用于唯一标识媒体中的轨道。通过调用 AudioTrackList.getTrackById()
,可以使用此 ID 在音频轨道列表中查找特定轨道。如果媒体支持根据媒体片段 URI 规范通过媒体片段进行搜索,则 ID 也可以用作 URL 的片段部分。
kind
只读
一个 DOMString
,指定轨道所属的类别。例如,主音频轨道的 kind
为 "main"
。
label
只读
一个 DOMString
,它为轨道提供了易于阅读的标签。例如,电影的音频评论轨道可能具有 “带有导演 John Q. Public 和演员 John Doe 和 Jane Eod 的评论”
的标签,如果未提供标签,则此字符串为空。
language
只读
一个 DOMString
,指定音频轨道的主要语言,如果未知,则为空字符串。该语言被指定为 BCP 47(RFC 5646)语言代码,例如 "en-US"
或 "pt-BR"
。
sourceBuffer
只读
创建轨道的 SourceBuffer
。如果轨道不是由 SourceBuffer
创建的,或者 SourceBuffer
已从其父媒体源的 MediaSource.sourceBuffers
属性中删除,则返回 null
。
使用注意
要获取给定媒体元素的 AudioTrack
,请使用元素的 audioTracks
属性,该属性将返回 AudioTrackList
对象,可以用来获取媒体中包含的各个轨道:
var el = document.querySelector("audio");
var tracks = el.audioTracks;
然后,您可以使用数组语法或 forEach()
之类的函数访问媒体的各个轨道。
此第一个实例获取媒体上的第一个音频轨道:
var firstTrack = tracks[0];
下一个实例扫描媒体的所有音轨,激活用户首选语言(取自变量 userLanguage
)中的第一个音频轨道。
tracks.forEach(function(track) {
if (track.language === userLanguage) {
track.enabled = true;
} else {
track.enabled = false;
}
});
language
为标准(RFC 5646)的格式。例如,对于美国英语,它将是 "en-US"
。
实例
此实例返回轨道种类和标签的数组,以便在用户界面中使用,用于选择指定媒体元素的音频轨道。列表被筛选为仅允许某些轨道类型通过。
function getTrackList(el) {
var trackList = [];
const wantedKinds = [
"main", "alternative", "main-desc", "translation", "commentary"
];
el.audioTracks.forEach(function(track) {
if (wantedKinds.includes(track.kind)) {
trackList.push({
id: track.id,
kind: track.kind,
label: track.label
});
}
});
return trackList;
}
产生的 trackList
包含一个音频轨道数组,其 kind
是数组 wantedKinds
中的音频轨道之一,每个条目都包含了轨道的 id
,kind
和 label
。
规范
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard AudioTrack 的定义 |
现行的标准 | - |
HTML5 AudioTrack 的定义 |
推荐 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 未知 | ≤18 | 未知 | 未知 | 未知 | 支持 |
enabled | 未知 | 12 | 未知 | 未知 | 未知 | 支持 |
id | 未知 | 12 | 未知 | 未知 | 未知 | 支持 |
kind | 未知 | 12 | 未知 | 未知 | 未知 | 支持 |
label | 未知 | 12 | 未知 | 未知 | 未知 | 支持 |
language | 未知 | 12 | 未知 | 未知 | 未知 | 支持 |
sourceBuffer | 未知 | 12 | 未知 | 未知 | 未知 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 支持 |
enabled | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 支持 |
id | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 支持 |
kind | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 支持 |
label | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 支持 |
language | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 支持 |
sourceBuffer | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |