AudioTrack: 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() 函数在 ID 为 "main-video"<video> 元素的音频轨道中查找 kind 属性值为 "main""commentary" 的音频轨道。它们分别代表主音频轨道和评论音轨。

注意: 此示例假设视频中每种 kind 的轨道只有一个,但这并非必然情况。

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

扫描会查找 kind 属性值为 "main""commentary" 的轨道,并记住那些 AudioTrack 对象。一旦找到它们,就会交换这两个轨道的 enabled 属性值,从而切换当前活动的轨道。

规范

规范
HTML
# dom-audiotrack-enabled-dev

浏览器兼容性