我正在创建音乐排序应用和I used the methodology explained in this article。然而,当我在Chrome中玩我的项目时,一切都很好,当我使用Firefox时,时间不稳定,并且与使用setTimeout或SetInterval独立时类似。
我的调度程序代码如下。 The JS file can be viewed here。可以通过转到与js文件相同的链接并将“javascript / index.js”替换为“index.html”来查看工作应用程序(Stackoverflow不会让我直接发布该URL)。
如果你在Chrome和Firefox中听,你可以听到差异,后者并不好。我不确定这是我的错,还是只是Firefox的方式。
function scheduleFutureNote() {
while (futureNote <= audioContext.currentTime + 0.10) { //_________When you've gotten within a Nth of a second is when you schedule the note
playFutureNote(futureNote);
futureNote += (60 / tempo) / 4;
}
if (timer) {
timer = window.setTimeout(scheduleFutureNote, 0.10); //__________sleep for n milliseconds...then check to see if we're close to next note.
} else {
timer === false
}
};
答案 0 :(得分:1)
window.setTimeout()在MILLISECONDS中,而不是秒。你需要setTimeout(scheduleFutureNode,100)。