html WEB Audio API Filter -随滑块位置更改截止频率

nzkunb0c  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(121)

在为WEB Audio API synth做草稿的时候,我遇到了一个问题。信号链是振荡器-〉增益-〉滤波器-〉输出。滤波器的截止频率可以用一个范围滑块来调整。它是有效的a-当你移动滑块时,截止频率会改变。但是!只有一次。做了一次之后,移动滑块对声音没有任何影响。
下面是滑块的HTML代码:

<input type="range" id="filterFreq" name="filterFreq" min="0" value="1000" max="20000" step="1">
    <label for="filterFreq" id="filterFreqLabel">frequency</label>

下面是将其与滤波器截止频率连接的JS代码:

// When fader moves, we change filter frequency value
    $('#filterFreq').on('change', function () {
        filter.frequency.value = this.value;
        $('#filterFreqLabel')[0].innerText = this.value;
    });

此单键合成器的代码:https://codepen.io/kkrzaevich/pen/MWXGyRW
正如我已经提到的,滑块工作,但只有一次。将感谢建议,使它的工作,以及,多次需要。谢谢!

3b6akqbq

3b6akqbq1#

我没有一个很好的解释,但如果你也调用振荡器上的disconnect(),一旦你不再需要它,它就像预期的那样工作。

document
    .getElementById('button')
    .addEventListener(
        'mouseup',
        function (event) {
            oscillator.stop();
            oscillator.disconnect();

            delete oscillator;
        }
    );

有趣的是,这似乎只是Chrome中的一个问题。Firefox和Safari的行为正常。

相关问题