在为Web Audio API Synth起草草稿时,我遇到了一个问题. 信号链是振荡器>增益->滤波器->输出. 可以使用范围滑块调整滤波器截止频率. 它是有效的--当你移动滑块时,截止频率就会改变. 但!只有一次.这样做一次后,移动滑块对声音没有影响.

以下是该滑块的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

正如我已经提到的,滑块可以工作,但只有一次. 我会感激你的建议,让它发挥作用,嗯,尽可能多地需要. 谢谢!

推荐答案

我对此没有很好的解释,但如果你在不再需要振荡器时也拨打disconnect(),它就会像预期的那样工作.

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

            delete oscillator;
        }
    );

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

Javascript相关问答推荐

如何使用Echart 5.5.0创建箱形图

为什么从liveWire info js代码传递数组我出现错误?

Javascript,部分重排序数组

Plotly热图:在矩形上zoom 后将zoom 区域居中

如何在Javascript中使用Go和检索本地托管Apache Arrow Flight服务器?

在grafana情节,避免冲突的情节和传说

分层树视图

CheckBox作为Vue3中的一个组件

更改预请求脚本中重用的JSON主体变量- Postman

在Matter.js中添加从点A到另一个约束的约束

使用NextJS+MongoDB+Prisma ORM获取无效请求正文,无法发布错误

TinyMCE 6导致Data:Image对象通过提供的脚本过度上载

无法避免UV:flat的插值:非法使用保留字"

是否可以在不更改组件标识的情况下换出Reaction组件定义(以维护状态/引用等)?如果是这样的话,是如何做到的呢?

Pevent触发material 用户界面数据网格中的自动保存

如何在独立的Angular 应用程序中添加Lucide-Angel?

Django模板中未加载JavaScript函数

Firebase函数中的FireStore WHERE子句无法执行

在执行console.log(new X())时记录一个字符串

我正在为我的单选按钮在HTML中设置一个值.使用Java脚本,我如何才能获得该值?