如果在FireFox上仍然不好,如何使用setTimeout补救网络音频时间关系

时间:2014-12-09 09:14:36

标签: javascript firefox html5-audio web-audio

我正在创建音乐排序应用和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)。

A JSfiddle is available here

如果你在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
    }
};

1 个答案:

答案 0 :(得分:1)

window.setTimeout()在MILLISECONDS中,而不是秒。你需要setTimeout(scheduleFutureNode,100)。