Browse Source

fix: 妙极客总谱渲染

TIANYONG 11 months ago
parent
commit
d2ab78e117

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit 66eb416152a7e4c81dafe85928631909b37fe247
+Subproject commit e291a4360a2abea541f003b80d2ec282ba36c435

+ 1 - 0
src/helpers/formateMusic.ts

@@ -623,6 +623,7 @@ export const xmlAddPartName = (xml: string) => {
 	const scoreParts = Array.from(xmlParse.getElementsByTagName("score-part"));
 	for (const scorePart of scoreParts) {
 		if (scorePart.getElementsByTagName("part-name").length === 0) {
+			state.evxmlAddPartName = true;
 			const name = scorePart.getAttribute("id") || "";
 			const newPartName = `<part-name>${name}</part-name>`
 			// scorePart.prepend(newPartName);

+ 10 - 7
src/page-instrument/evaluat-model/index.tsx

@@ -415,15 +415,18 @@ export default defineComponent({
       // 如果是异常状态,先等待500ms再执行后续流程
       if (evaluatingData.isErrorState && !state.setting.soundEffect) {
         // console.log('异常流程1')
-        showLoadingToast({
-          message: "处理中",
-          duration: 1000,
-          overlay: true,
-          overlayClass: styles.scoreMode,
-        });
+        // showLoadingToast({
+        //   message: "处理中",
+        //   duration: 1000,
+        //   overlay: true,
+        //   overlayClass: styles.scoreMode,
+        // });
+        state.loadingText = "处理中…";
+				state.isLoading = true;
         await new Promise<void>((resolve) => {
           setTimeout(() => {
-            closeToast();
+            // closeToast();
+            state.isLoading = false;
             evaluatingData.isErrorState = false;
             // console.log('异常流程2')
             resolve();

+ 1 - 0
src/state.ts

@@ -564,6 +564,7 @@ const state = reactive({
   melodyLine: true,
   /** 是否是C调,切换到唱名时,只有C调所有的谱面类型都可以播放唱名文件;其它调的只有首调可以播放唱名,因为唱名是按照C调制作的,没有其它调的唱名文件 */
   isCTone: false,
+  evxmlAddPartName: false, // 妙极客的部分曲子没有part-name,需要自行添加的part-name
 });
 const browserInfo = browser();
 let offset_duration = 0;

+ 1 - 1
src/view/music-score/index.tsx

@@ -159,7 +159,7 @@ export default defineComponent({
 			// 需要渲染总谱的云教练页面
 			if (!state.isSimplePage && state.isCombineRender) {
 				for (let i = 0; i < osmd.Sheet.Instruments.length; i++) {
-					const trackName = state.isEvxml ? osmd.Sheet.Instruments[i].idString || '' : osmd.Sheet.Instruments[i].Name || '';
+					const trackName = state.isEvxml && state.evxmlAddPartName ? osmd.Sheet.Instruments[i].idString || '' : osmd.Sheet.Instruments[i].Name || '';
 					osmd.Sheet.Instruments[i].Visible = state.canSelectTracks.includes(trackName)
 				  }
 			}