我想使用setInterval
创建一个节拍器。我希望能够达到300 bpm的高bpms。即使文件足够短,可以根据需要进行多次播放,也很容易打扰非常。此外,许多浏览器都存在短音频文件的问题 - 用于MP3的Safari和用于WAV的Firefox。
我尝试使用多个文件,如下所示,但无济于事。
metronome = setInterval(function () {
if (!tick.played) {
tick.play();
} else {
tick2.play();
}
}, 200); // = 300 bmp
答案 0 :(得分:2)
使用Web Audio API进行精确计时,JavaScript的setTimeout最多可以有10毫秒的偏移量。在它的核心使用audioContext.currentTime
的节拍器演示。有关音频调度的详细信息,请参阅此article。有关Web Audio Metronome演示,请参阅此Plunker。