Bläddra i källkod

fix: 播放速度bug修复

TIANYONG 1 år sedan
förälder
incheckning
324f482f35
2 ändrade filer med 5 tillägg och 3 borttagningar
  1. 2 1
      src/helpers/formateMusic.ts
  2. 3 2
      src/state.ts

+ 2 - 1
src/helpers/formateMusic.ts

@@ -831,7 +831,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 
 			let relativeTime = usetime;
 			// 速度不能为0 此处的速度应该是按照设置的速度而不是校准后的速度,否则mp3速度不对
-			let beatSpeed = (state.isSpecialBookCategory ? measureSpeed : baseSpeed) || 1;
+			// let beatSpeed = (state.isSpecialBookCategory ? measureSpeed : baseSpeed) || 1;
+			let beatSpeed = measureSpeed || baseSpeed
 			// 如果有节拍器,需要将节拍器的时间算出来
 			if (i === 0) {
 				fixtime += getFixTime(beatSpeed);

+ 3 - 2
src/state.ts

@@ -494,8 +494,8 @@ const handlePlaying = () => {
   // 练习模式下,实时刷新小节速度
   if (item && state.modeType === "practise" && state.playState === "play" && item.measureSpeed && item.measureSpeed !== state.playIngSpeed) {
     const ratio = state.speed / state.originSpeed
-    state.playIngSpeed = Math.ceil(ratio * item.measureSpeed)
-  } else if (state.modeType === "practise" && state.playState === "play") {
+    state.playIngSpeed = Math.ceil(ratio * item.measureSpeed) || state.speed
+  } else if (state.modeType === "practise" && state.playState === "play" && item && !item.measureSpeed) {
     state.playIngSpeed = state.speed
   }
   if (item) {
@@ -981,6 +981,7 @@ const setState = (data: any, index: number) => {
   state.musicSheetCategoriesId = data.musicCategoryId;
   state.playMode = data.playMode === "MP3" ? "MP3" : "MIDI";
   state.originSpeed = state.speed = data.playSpeed;
+  state.playIngSpeed = data.playSpeed;
   const track = data.code || data.track;
   state.track = track ? track.replace(/ /g, "").toLocaleLowerCase() : "";
   // 能否评测,根据当前声轨有无伴奏判断