Parcourir la source

feat: originSpeed基准速度逻辑

TIANYONG il y a 1 an
Parent
commit
33d81b5db7

+ 8 - 4
src/helpers/formateMusic.ts

@@ -603,7 +603,7 @@ export const formatXML = (xml: string): string => {
 	// 	}
 	// }
 	// console.log(11111,Array.from(xmlParse.getElementsByTagName("staffline")),Array.from(xmlParse.getElementsByTagName("words")))
-	// let speed = -1
+	let speed = -1
 	let beats = -1;
 	let beatType = -1;
 	// 小节中如果没有节点默认为休止符
@@ -614,9 +614,9 @@ export const formatXML = (xml: string): string => {
 		if (beatType === -1 && measure.getElementsByTagName("beat-type").length) {
 			beatType = parseInt(measure.getElementsByTagName("beat-type")[0].textContent || "4");
 		}
-		// if (speed === -1 && measure.getElementsByTagName('per-minute').length) {
-		//   speed = parseInt(measure.getElementsByTagName('per-minute')[0].textContent || this.firstLib?.speed)
-		// }
+		if (speed === -1 && measure.getElementsByTagName('per-minute').length) {
+		  speed = Number(measure.getElementsByTagName('per-minute')[0]?.textContent)
+		}
 		const divisions = parseInt(measure.getElementsByTagName("divisions")[0]?.textContent || "256");
 		if (measure.getElementsByTagName("note").length === 0) {
 			const forwardTimeElement = measure.getElementsByTagName("forward")[0]?.getElementsByTagName("duration")[0];
@@ -634,6 +634,10 @@ export const formatXML = (xml: string): string => {
         </note>`;
 		}
 	}
+	// 如果曲谱详情接口没有返回速度,则取xml第一小节的速度,如果取不到,则取默认速度:100
+	if (!state.originSpeed) {
+		state.originSpeed = state.speed = speed || 100
+	}
 	return new XMLSerializer().serializeToString(xmlParse);
 };
 

+ 4 - 2
src/page-instrument/evaluat-model/delay-check/index.tsx

@@ -76,8 +76,10 @@ export default defineComponent({
 				clearTimeout(data.startTimer);
 				clearTimeout(data.stopTimer);
 				clearTimeout(startTuneTimer);
-				data.checkStatus = "init"
-				data.step = 3
+				if (data.step <= 5) {
+					data.checkStatus = "init"
+					data.step = 3
+				}
 			} else {
 				if (data.step === 3) {
 					data.step = 2

+ 1 - 1
src/page-instrument/evaluat-model/index.tsx

@@ -337,7 +337,7 @@ export default defineComponent({
           )}
         </Transition>
 
-        <div style={{ display: !evaluatingData.startBegin ? "" : "none" }} class={styles.dialogueBox} key="start">
+        <div style={{ display: !evaluatingData.startBegin && !evaluatingData.soundEffectMode ? "" : "none" }} class={styles.dialogueBox} key="start">
           <div class={styles.dialogue}>
             <img class={styles.dialoguebg} src={iconTastBg} />
             <div>演奏前请调整好乐器,保证最佳演奏状态。</div>

+ 1 - 1
src/state.ts

@@ -818,7 +818,7 @@ const setState = (data: any, index: number) => {
   state.parentCategoriesId = data.musicTag;
   state.musicSheetCategoriesId = data.musicCategoryId;
   state.playMode = data.playMode === "MP3" ? "MP3" : "MIDI";
-  state.originSpeed = state.speed = data.playSpeed || 100;
+  state.originSpeed = state.speed = data.playSpeed;
   const track = data.code || data.track;
   state.track = track ? track.replace(/ /g, "").toLocaleLowerCase() : "";
   // 能否评测,根据当前声轨有无伴奏判断