增益节点通过HTML输入类型“范围”连接到UI滑块。我可以在拖动时成功更改音量,但无论我如何设置步长,当我拖动滑块时都会听到噪音。
HTML看起来像这样:
<input id="slider6Volume" type="range" min="0.0008" max="1.0008" step="0.0001" value="0.0008" oninput="changeGain(this.value)"/>
.js是这样的:
function changeGain(newValue) {
document.getElementById('slider6Volume').addEventListener('input', function() {
gainNode6.gain.setValueAtTime(newValue, audioCtx.currentTime);
console.log ("Channel 6: ", this.value);
}, "false");
我开始使用的浮点值几乎不是那么小,但是这导致了增益值之间的声音阶梯。听起来它正在获得相互冲突的收益更新,但我连接的控制台转储看起来还不错。在稳定不间断的有序流中浮动值。我错过了什么?
答案 0 :(得分:1)
不要使用setValueAtTime - 使用setTargetAtTime,timeConstant值较小(例如,尝试0.01作为起点)。这将解除设置。