0

我正在构建一个带有循环选项的基于 JavaScript 的乐器。要创建循环,首先记录音符、它们的持续时间、间隔(音符之间)和整个循环的总时间。

例如,这就是我记录音符之间差距的方式:

$('.pad').on('touchstart', function(){
    if (gapCount != null) {
        clearInterval(gapCount)
        loopInfo.push(noteInfo);
    }
    gapCount = setInterval(function () {
        noteInfo.gap++
    },1);
})

在我记录间隙时间和总持续时间(以毫秒为单位)后,我将信息传递给播放循环函数。然后不是在音符之间暂停我刚刚录制的时间量,而是播放所有内容的速度提高了 4 倍。这真的很奇怪,这种行为的原因是什么?

gap = loopInfo[i].gap;
setTimeout(function () {
    PlayNoteInLoop(i)
}, gap) // the same number recorded in the function above, but in reality playing it 4 times faster`
4

0 回答 0