音频轨道:enabled 属性

有限可用性

此功能不是基线,因为它在某些最常用的浏览器中不起作用。

AudioTrack 属性 enabled 指定所描述的音频轨道当前是否启用。如果通过将 enabled 设置为 false 来禁用轨道,则该轨道将被静音并且不会产生音频。

enabled 属性是一个布尔值,如果轨道已启用,则其值为 true;已启用的轨道在媒体播放时会产生音频。将 enabled 设置为 false 会有效地静音音频轨道,使其无法为媒体的音频性能做出贡献。

示例

此示例在媒体元素的主音频轨道和评论音频轨道之间切换。

js
function swapCommentaryMain() {
  const videoElem = document.getElementById("main-video");
  let audioTrackMain;
  let audioTrackCommentary;

  videoElem.audioTracks.forEach((track) => {
    if (track.kind === "main") {
      audioTrackMain = track;
    } else if (track.kind === "commentary") {
      audioTrackCommentary = track;
    }
  });

  if (audioTrackMain && audioTrackCommentary) {
    const commentaryEnabled = audioTrackCommentary.enabled;
    audioTrackCommentary.enabled = audioTrackMain.enabled;
    audioTrackMain.enabled = commentaryEnabled;
  }
}

上面的 swapCommentaryMain() 函数在 <video> 元素 "main-video" 的音频轨道中找到 kind 值为 "main""commentary" 的音频轨道。它们分别代表主音频轨道和评论轨道。

注意: 此示例假定视频中每种类型的轨道只有一个,但事实并非一定如此。

然后使用 JavaScript forEach() 方法扫描元素的音频轨道(尽管媒体元素的 audioTracks 属性实际上不是 JavaScript 数组,但在大多数情况下可以像数组一样访问它)。

扫描查找 kind 值为 "main""commentary" 的轨道,并记住这些 AudioTrack 对象。找到这些轨道后,交换两个轨道 enabled 属性的值,这将导致交换当前处于活动状态的两个轨道。

规范

规范
HTML 标准
# dom-audiotrack-enabled-dev

浏览器兼容性

BCD 表仅在浏览器中加载