|
@@ -70,7 +70,7 @@ const handlePlay = (i: number, source: any | null) => {
|
|
|
} else {
|
|
|
_time=setTimeout(() => {
|
|
|
tickPlayCb(i, resolve, source);
|
|
|
- }, tickData.beatLengthInMilliseconds[i-1]*1000/state.basePlayRate);
|
|
|
+ }, Math.abs(tickData.beatLengthInMilliseconds[i-1])*1000/state.basePlayRate);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
@@ -99,7 +99,7 @@ const createAudio = (src: string): Promise<HTMLAudioElement | null> => {
|
|
|
export const handleInitTick = () => {
|
|
|
const beatLen = metronomeData.firstBeatTypeArr.length * (state.repeatedBeats ? 2 : 1)
|
|
|
const beatLengthInMilliseconds = metronomeData.firstBeatTypeArr.map(item=>{
|
|
|
- return Math.abs(item)*state.times[0].measureLength
|
|
|
+ return item*state.times[0].measureLength
|
|
|
})
|
|
|
tickData.beatLengthInMilliseconds = [...beatLengthInMilliseconds,...(state.repeatedBeats ? beatLengthInMilliseconds : [])]
|
|
|
tickData.len = beatLen;
|
|
@@ -120,7 +120,7 @@ export const handleStartTick = async () => {
|
|
|
// 提前结束, 直接放回false
|
|
|
if (tickData.tickEnd) return false;
|
|
|
// Audio 标签播放音频
|
|
|
- const source = i === 0 ? audioData.tick : i === useLen.value ? null : audioData.tock;
|
|
|
+ const source = tickData.beatLengthInMilliseconds[i] < 0 ? audioData.tick : i === useLen.value ? null : audioData.tock;
|
|
|
await handlePlay(i, source)
|
|
|
}
|
|
|
tickData.show = false;
|