Explorar el Código

feat: 手动点击音符不执行谱面滚动

TIANYONG hace 4 semanas
padre
commit
d346426c9c
Se han modificado 1 ficheros con 7 adiciones y 3 borrados
  1. 7 3
      src/state.ts

+ 7 - 3
src/state.ts

@@ -645,7 +645,7 @@ export const skipNotePlay = async (itemIndex: number, isStart = false, handType?
     }
     setAudioCurrentTime(itemTime, itemIndex);
     // 一行谱,点击音符,或者播放完成,需要跳转音符位置
-    gotoNext(item, true);
+    gotoNext(item, true, handType);
     // 不需要播放节拍器的声音,因为音频带有节拍器的声音
     // metronomeData.metro?.sound(itemTime);
     metronomeData?.metro?.findMetronomePosition(itemTime);
@@ -866,7 +866,7 @@ const setCursorPosition = (note: any, cursor: any, flag?: string) => {
  * 跳转到下一个音符
  * 一行谱,点击音符,或者播放完成,需要跳转音符位置,增加参数skipNote
  **/
-export const gotoNext = (note: any, skipNote?: boolean) => {
+export const gotoNext = (note: any, skipNote?: boolean, handType?: string) => {
   // console.log(33333333333,state.activeNoteIndex,note.i)
   const num = note.i;
 
@@ -936,7 +936,11 @@ export const gotoNext = (note: any, skipNote?: boolean) => {
   if (state.isSingleLine && state.playState === "paused") {
     moveSvgDom(skipNote);
   }
-  scrollViewNote();
+  if (handType === 'manual') {
+    // 手动点击不执行滚动屏幕方法
+  } else {
+    scrollViewNote();
+  }
 };
 /** 获取指定音符 */
 export const getNote = (currentTime: number) => {