我正在尝试理解Web Audio API的时间和调度方法。
但是我仍然没有完全理解振荡器节点的stop()
方法。
在这里,我正在尝试使用120 BPM的速度安排播放4个振荡器。
但是似乎一旦释放时间上的stop()
方法启动,它就会停止所有的振荡器。
以下是代码:
var context = new webkitAudioContext();
var now = context.currentTime;
var tempo = 120;
var releaseTime = 0.5;
var secondsPerBeat = 60.0 / tempo;
for(var i = 0; i < 4; i++){
var now = context.currentTime;
var osc = context.createOscillator();
osc.connect(context.destination);
osc.start(now + (i*secondsPerBeat));
var now = context.currentTime;
osc.stop(now + releaseTime);
}
为什么会发生这种情况,我该如何预防?
谢谢