Explorar el Código

Merge branch 'gyt-feature-tianyong' into gyt-test

TIANYONG hace 1 año
padre
commit
cad30d319e

+ 3 - 5
osmd-extended/src/MusicalScore/Graphical/VexFlow/VexFlowConverter.ts

@@ -601,11 +601,9 @@ export class VexFlowConverter {
             if (stemDirection && typeof stemDirection?.direction === 'number') {
                 wantedStemDirection = stemDirection.direction
             }
-            const DYMusicSheetId = (window as any).DYMusicSheetId
-            // 长笛教程2-5-2,符杆全部朝下
-            if (DYMusicSheetId === 904) {
-                wantedStemDirection = 1
-            }
+            // 自定义符杆朝向
+            const DYMusicalOrientation = (window as any).DYMusicalOrientation
+            wantedStemDirection = DYMusicalOrientation !== undefined ? DYMusicalOrientation : wantedStemDirection
             switch (wantedStemDirection) {
                 case(StemDirectionType.Up):
                     vfnote.setStemDirection(VF.Stem.UP);

+ 5 - 2
src/pages/detail/runtime.ts

@@ -31,7 +31,7 @@ import { postMessage, listenerMessage, promisefiyPostMessage } from '/src/helper
 
 import EventEmitter from 'eventemitter3'
 import { useClientType, useOriginSearch } from '/src/subpages/colexiu/uses'
-import { evaluatPlayerStop } from '/src/subpages/colexiu/buttons/evaluating'
+import { evaluatPlayerStop, setPlayer } from '/src/subpages/colexiu/buttons/evaluating'
 import { unitTestData } from '/src/subpages/colexiu/unitTest'
 import { modelType } from '/src/subpages/colexiu/buttons'
 import { metronomeData } from '/src/helpers/metronome'
@@ -533,7 +533,10 @@ export const resetPlayStatus = async (notStop?: boolean) => {
 
 export const play = async () => {
   // 评测是app播放,非h5播放
-  if (modelType.value === 'evaluation') return
+  if (modelType.value === 'evaluation') {
+    setPlayer()
+    return
+  }
   if (state.isFirstPlay) {
     resetPlayStatus()
     detailState.fixedKey = 0

+ 9 - 11
src/subpages/colexiu/buttons/evaluating.tsx

@@ -548,7 +548,7 @@ const startPlay = () => {
   RuntimeUtils.setPlayState()
 }
 
-const setPlayer = async () => {
+export const setPlayer = async () => {
   // 连接中,禁止重复连接
   if (connentLoading.value) return
   runtime.clickTime = new Date().getTime()
@@ -577,10 +577,7 @@ const setPlayer = async () => {
     runtime.evaluatingStatus = false
     Toast.clear()
   }
-  // midi音频播放不需要再次调用此方法,而是通过监听tickEnd回调事件调用
-  if (!detailState.isAppPlay && !detailState.needTick) {
-    evaluatStart()
-  }
+  evaluatStart()
 }
 
 const togglePlay = async () => {
@@ -592,10 +589,6 @@ const togglePlay = async () => {
   if (evaluating.value) {
     stopPlay()
   } else {
-    // 评测模式,如果有系统节拍器,需要先播放系统节拍器
-    if (detailState.needTick) {
-      await RuntimeUtils.setEvaluatTick()
-    }
     setPlayer()
   }
 }
@@ -989,8 +982,13 @@ export default defineComponent({
                   'transform': detailState.isSpecialShapedScreen ? `translateX(${detailState.notchHeight / 4}px)`  : '',
                 }}
                 class={[styles.evaluatStartBtn]}
-                onClick={() => {
-                  setPlayer()
+                onClick={async () => {
+                  // 评测模式,如果有系统节拍器,需要先播放系统节拍器
+                  if (detailState.needTick) {
+                    await RuntimeUtils.setEvaluatTick()
+                  } else {
+                    setPlayer()
+                  }
                 }}
               ></div>
             )}

+ 7 - 1
src/subpages/colexiu/uses/use-app.ts

@@ -184,7 +184,13 @@ export const useDetail = (id: number | string): [Ref<ShaeetStatusType>, Ref<Musi
         setGlobalData('multitrack', res.data.background?.length)
       }
       ;(window as any).DYSubjectId = formatId(data.value.code as any)
-      ;(window as any).DYMusicSheetId = Number(id)
+      /**
+       * 长笛教程2-5-2,符杆全部朝下
+       * DYMusicalOrientation,0:朝上;1:朝下
+       */
+      if (id == 904) {
+        ;(window as any).DYMusicalOrientation = 1
+      }
       status.value = 'success'
 
       // 额外配置