Browse Source

feat: midi显示指法

TIANYONG 1 month ago
parent
commit
d15b0c407d
1 changed files with 13 additions and 0 deletions
  1. 13 0
      src/state.ts

+ 13 - 0
src/state.ts

@@ -1536,6 +1536,19 @@ const setState = (data: any, index: number) => {
    * 获取指法code
    */
   // const code = state.isConcert ? matchVoicePart(state.trackId, "CONCERT") : matchVoicePart(state.musicalCodeId, "SINGLE");
+  
+  // 如果是midi的曲子,midi的曲子没有musicSheetSoundList原音列表,指法需要通过musicalInstruments字段判断
+  if (data.musicSheetType === "SINGLE" && data.playMode === 'MIDI' && data.musicalInstruments?.length) {
+    const currentInstrumentId = query.instrumentId || storeData.user?.instrumentId;
+    let midiTrackId = null
+    if (currentInstrumentId) {
+      midiTrackId = data.musicalInstruments.find((item: any) => item.id == currentInstrumentId)?.code?.split(',')?.[0]
+    } else {
+      midiTrackId = data.musicalInstruments[0]?.code?.split(',')?.[0]
+    }
+    state.trackId = midiTrackId || state.trackId
+  }
+
   let code = matchVoicePart(state.trackId, "CONCERT")
   if (code == 1 || !code) {
     code = fixInstrumentNameCode(state.trackId)