当我使用Web音频振荡器(使用noteOn
)成功创建了一个音调,然后调用了它的noteOff
函数时,随后对noteOn
的调用将不再播放该音调。我似乎必须创建一个新的振荡器来演奏新的音符。为什么是这样?
var ctx = new webkitAudioContext();
var osc = ctx.createOscillator();
osc.connect(ctx.destination);
osc.start(0); // tone is heard (previously noteOn(0))
// ... some time later
osc.stop(0); // tone falls silent (previously noteOff(0))
// ... some time later
osc.start(0); // no effect! (previously noteOn(0))
最佳答案
简而言之-API是按照这种方式设计的,并且针对这种使用进行了优化。除了为每个音符创建一个新的振荡器以外,没有太多选择。