从多音频轨道视频更改音频



我有带有多个音轨的视频。我想播放视频,并希望从视频中更改音轨。有什么方法可以在HTML中做到这一点,或者有HTML支持的播放器?

有一个API,但并不是很受支持。但是,有一个用于video.js的插件,称为videojs-audio-tracks,但它仍然使用audioTracks API,该API不受Chrome的支持,并且需要在Firefox中启用手册。

如果要从HTML5视频中获取音频曲目,则可以通过ID获取视频元素,然后使用.audioTracks阵列并传递您的曲目索引,以访问。

var video = document.getElementById("video");
for (var i = 0; i < video.audioTracks.length; i += 1) {
  video.audioTracks[i].enabled = false;
}

mdn文档: htmlmediaelement.audiotracks

此外,如果您想操纵音频,威廉(William

以下是上面链接中提供的响应,但有一些编辑以说明AudioContext的更新采用(用于webkitAudioContext(

<script>
var video = document.createElement("video");
video.setAttribute("src", "ourMovie.mov");
video.controls = true;
video.autoplay = true;
document.body.appendChild(video);
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();         // get access to audio context
var gainNode = audioCtx.createGain();
gainNode.gain.value = 1;                   // Change Gain Value to test
filter = audioCtx.createBiquadFilter();
filter.type = 2;                          // Change Filter type to test
filter.frequency.value = 5040;            // Change frequency to test
// Wait for window.onload to fire. See crbug.com/112368
window.addEventListener('load', function(e) {
  // Our <video> element will be the audio source.
  var source = audioCtx.createMediaElementSource(video); 
  source.connect(gainNode);
  gainNode.connect(filter);
  filter.connect(audioCtx.destination);
}, false);

</script>

您应该使用爱马仕建议的答案:

var video = document.getElementById("video");
for (var i = 0; i < video.audioTracks.length; i += 1) {
      video.audioTracks[i].enabled = false;
}

但是,在Chrome中为此,您必须启用"实验网络平台功能"。您会在Chrome上找到://flags/

最新更新