Pārlūkot izejas kodu

选段功能,如果前面没有音符需要加上预备节拍

黄琪勇 11 mēneši atpakaļ
vecāks
revīzija
4f8839bb35
1 mainītis faili ar 2 papildinājumiem un 1 dzēšanām
  1. 2 1
      src/state.ts

+ 2 - 1
src/state.ts

@@ -763,7 +763,8 @@ export const togglePlay = async (playState?: "play" | "paused", sourceType?: str
     closeTick()
     closeTick()
   }
   }
   // 设置为开始播放时, 如果需要节拍,先播放节拍器   只有在当前播放时间不为0的时候开启节拍器
   // 设置为开始播放时, 如果需要节拍,先播放节拍器   只有在当前播放时间不为0的时候开启节拍器
-  if (state.playState === "play" && getAudioCurrentTime() === 0 && ((state.playType === "play" && state.needTick) || (state.playType === "sing" && state.needSingTick))) {
+  const isOneMeasureNumberXML = state.section.length === 2 && state.section[0].MeasureNumberXML === 2 //当是选段模式 并且开始小节是第二小节 就不播节拍器(这种情况有预选小节,currentTime是0)
+  if (state.playState === "play" && getAudioCurrentTime() === 0 && !isOneMeasureNumberXML && ((state.playType === "play" && state.needTick) || (state.playType === "sing" && state.needSingTick))) {
     // 如果是系统节拍器 等系统节拍器播完了再播,如果是mp3节拍器 直接播
     // 如果是系统节拍器 等系统节拍器播完了再播,如果是mp3节拍器 直接播
     if ((state.playType === "play" && !state.isOpenMetronome) || (state.playType === "sing" && !state.isSingOpenMetronome)) {
     if ((state.playType === "play" && !state.isOpenMetronome) || (state.playType === "sing" && !state.isSingOpenMetronome)) {
       const tickend = await handleStartTick();
       const tickend = await handleStartTick();