gpt4 book ai didi

javascript - 网络音频 : Recreating an oscillator after timed stop

转载 作者:行者123 更新时间:2023-11-30 17:36:45 26 4
gpt4 key购买 nike

我想发出 2 秒的振荡器音符。但是下一次,即使重新创建了一个新的振荡器,也没有播放任何声音:

        oscillator = context.createOscillator();

oscillator.frequency.value = 440;
oscillator.type = oscillator.SINE;

oscillator.connect(context.destination);

oscillator.start(0);
oscillator.stop(2);

如果我省略 stop(2) 而是在函数中使用 setTimeout() 到 oscillator.stop(),它就可以工作。我读过节点应该断开连接,但是 disconnect() 不接受时间作为参数,只接受输出索引。任何解决方案的指针?

最佳答案

启动和停止的“when”参数基于 AudioContext.currentTime。零表示“现在”——创建 AudioContext 时,currentTime 也从零开始。所以当你说“.start(0); .stop(2);”第二次,“停止”已经过去了(检查 AudioContext.currentTime - 它已经 >2),所以开始永远不会造成任何影响。

代替你目前正在做的,做:

    oscillator.start(context.currentTime);
oscillator.stop(context.currentTime+2);

关于javascript - 网络音频 : Recreating an oscillator after timed stop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com