我正在尝试了解 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);
}
为什么会发生这种情况,我该如何防止这种情况发生?
谢谢