正在做 mozilla 教程。当我移动 slider 时,即使 GainNode.gain.value 变为零,音量也不会下降。
HTML
<input type="range" id="volume" min="0" max="2" value="1" step="0.01">
<audio src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/858/outfoxing.mp3" crossorigin="anonymous" id="basic-audio"></audio>
JavaScript
const volumeSlider = document.getElementById('volume');
const audioElement = document.getElementById('basic-audio');
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioContext = new AudioContext();
const track = audioContext.createMediaElementSource(audioElement);
track.connect(audioContext.destination);
const gainNode = audioContext.createGain();
track.connect(gainNode).connect(audioContext.destination);
volumeSlider.addEventListener('input', function() {
gainNode.gain.value = this.value;
console.log(gainNode.gain.value);
}, false);
最佳答案
我知道这是一个愚蠢的问题。
而不是
track.connect(audioContext.destination);
然后
track.connect(gainNode).connect(audioContext.destination);
只做一次
track.connect(gainNode).connect(audioContext.destination);
关于javascript - slider 更改网络音频增益,但仍然可以听到音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61642482/