javascript - slider 更改网络音频增益,但仍然可以听到音频

标签 javascript html web-audio-api

正在做 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/

相关文章:

javascript - 模仿 javascript 中的对象 - 设计决策

javascript - 获取变量的所有初始值的最快方法是什么? JS

javascript - polymer 模板有邮票事件吗?

web-audio-api - WebAudio 的问题

javascript - Tone.PitchShift 和 Howler.js 问题

javascript - 在解决了包含嵌套 Promise 的 Promise 后执行代码

javascript - 将字符串的一部分绑定(bind)到 Angular 范围变量

html - Bootstrap : Propagate container height/width

javascript - 使用 Chrome webkitAudioContext 在中间开始播放加载的音频文件?

javascript - 获取天,小时和分钟的差异时刻js