Explorar el Código

fix: 延迟检测bug修复

TIANYONG hace 1 año
padre
commit
ee9c8b7ac8

BIN
src/pages/detail/CheckDelayPopup/image/step_top_icon_5.png


+ 3 - 1
src/pages/detail/CheckDelayPopup/index.tsx

@@ -21,6 +21,7 @@ import step_top_icon_1 from "./image/step_top_icon_1.png"
 import step_top_icon_2 from "./image/step_top_icon_2.png"
 import step_top_icon_3 from "./image/step_top_icon_3.png"
 import step_top_icon_4 from "./image/step_top_icon_4.png"
+import step_top_icon_5 from "./image/step_top_icon_5.png"
 import step_btn_1 from "./image/delay_btn_icon1.png"
 import step_btn_2 from "./image/delay_btn_icon2.png"
 import setp_dot_1 from './image/step_state_icon1.png'
@@ -65,7 +66,8 @@ export default defineComponent({
 				<div class={styles.delayBody}>
 					<div class={styles.delayBox}>
 						<div class={styles.dbTop}>
-							<img class={styles.topIcon} src={props.delayData.step <= 3 ? step_top_icon_1 : props.delayData.step === 4 ? step_top_icon_2 : props.delayData.step === 5 ? step_top_icon_3 : props.delayData.step >= 6 ? step_top_icon_4 : '' } />
+							<img class={styles.topIcon} src={props.delayData.step <= 3 ? step_top_icon_1 : props.delayData.step === 4 ? step_top_icon_2 : props.delayData.step === 5 ? step_top_icon_3 : 
+								props.delayData.step >= 6 && props.delayData.earPhoneType !== "有线耳机" ? step_top_icon_4 : props.delayData.step >= 6 && props.delayData.earPhoneType === "有线耳机" ? step_top_icon_5 : '' } />
 							{
 								props.delayData.step <= 2 ? 
 								<div class={styles.topDots}>

+ 8 - 3
src/pages/detail/runtime.ts

@@ -224,7 +224,7 @@ export const getActiveMidiId = () => {
  * 修改原音或伴奏
  * @param val IMode
  */
-export const changeMode = async (val: IMode) => {
+export const changeMode = async (val: IMode, type?: string | undefined) => {
   const cm: IMode = val === 'background' ? 'music' : 'background'
   // console.log(!state.songs[val], val, cm)
   if (detailState.activeDetail.isAppPlay) {
@@ -260,8 +260,13 @@ export const changeMode = async (val: IMode) => {
   //   return
   // }
   state.mode = val
-  state.audiosInstance?.setMute(true, state.songs[cm])
-  state.audiosInstance?.setMute(false, state.songs[val])
+  if (type === 'all') {
+    state.audiosInstance?.setMute(true, state.songs[cm])
+    state.audiosInstance?.setMute(true, state.songs[val])
+  } else {
+    state.audiosInstance?.setMute(true, state.songs[cm])
+    state.audiosInstance?.setMute(false, state.songs[val])
+  }
 }
 
 export const changeAllMode = () => {

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

@@ -233,6 +233,7 @@ const delayData =  reactive({
 			runtime.delayCheckFirst = true
 			delayData.open = false
 			delayData.checkStatus = 'init'
+      delayData.step = 1
 			handleToggleTune('stop')
 			// this.close();
 		} 
@@ -246,7 +247,9 @@ const delayData =  reactive({
 				return;
 			}
 			delayData.checkStatus = 'ing';
-			startTune();
+      setTimeout(() => {
+        startTune()
+      }, 2000)
 			checkWiredStatus();
 		}
 
@@ -379,6 +382,7 @@ const formatTimes = () => {
       denominator: note.noteElement?.Length.denominator,
       isOrnament: !!note?.voiceEntry?.ornamentContainer,
     }
+    // console.log('时间1111', data)
     datas.push(data)
   }
   return datas
@@ -485,11 +489,11 @@ export const evaluatStopPlay = stopPlay
 
 const startPlay = () => {
   console.log('连接服务成功,开始播放', new Date().getTime() - runtime.clickTime)
-  if (!SettingState.eva.mute) {
-    RuntimeUtils.changeAllMode()
-  } else {
-    RuntimeUtils.changeMode('background')
-  }
+  // if (!SettingState.eva.mute) {
+  //   RuntimeUtils.changeAllMode()
+  // } else {
+  //   RuntimeUtils.changeMode('background')
+  // }
   startButtonShow.value = false
   RuntimeUtils.setPlayState()
 }
@@ -640,6 +644,9 @@ const evaluatStart = () => {
   postMessage(
     {
       api: 'startRecording',
+      content: {
+        accompanimentState: SettingState.eva.mute ? 1 : 0
+      }
     },
     () => {
       // console.log('开始录音app回调时间', Date.now())
@@ -817,22 +824,44 @@ export const submitMaxScore = () => {
     })
   }
 }
+/**
+ * 木管(长笛 萨克斯 单簧管)乐器一级的2、3、6测评要放原音音频
+ * 铜管乐器一级的1a,1b,5,6测评要放原音音频
+ */
+const getMusicMode = (): RuntimeUtils.IMode => {
+	const muguan = [2, 4, 5, 6];
+	const tongguan = [12, 13, 14, 15, 17];
+	if (muguan.includes(detailState.subjectId) && (detailState.activeDetail?.examSongName || "").search(/[^\u0000-\u00FF](1-2|1-3|1-6)/gi) > -1) {
+		return "music";
+	}
+	if (tongguan.includes(detailState.subjectId) && (detailState.activeDetail?.examSongName || "").search(/[^\u0000-\u00FF](1-1-1|1-1-2|1-5|1-6)/gi) > -1) {
+		return "music";
+	}
+	if ([23, 113, 121].includes(detailState.subjectId)) {
+		return "music";
+	}
+	return "background";
+};
 
 export default defineComponent({
   name: 'ColexiuButtonEvaluating',
   setup(props, { expose }) {
     onMounted(async () => {
       console.log('进入评测模块')
+      if (!SettingState.eva.mute) {
+        RuntimeUtils.changeAllMode();
+      } else {
+        RuntimeUtils.changeMode('background', 'all')
+      }
       handleCheckEvaluatStatus()
       // 如果为单元测验和课后训练,不清楚选段数据
       if (!unitTestData.isSelectMeasureMode) {
         detailState.section = []
         detailState.sectionStatus = false
       }
-      RuntimeUtils.changeAllMode()
       playUrl.value = runtime.songs.background || (runtime.songs.music as string)
-      runtime.audiosInstance?.audios[playUrl.value]?.addEventListener('play', timeupdate)
-      runtime.audiosInstance?.audios[playUrl.value]?.addEventListener('timeupdate', onProgress)
+      // runtime.audiosInstance?.audios[playUrl.value]?.addEventListener('play', timeupdate)
+      // runtime.audiosInstance?.audios[playUrl.value]?.addEventListener('timeupdate', onProgress)
       // RuntimeUtils.event.on('next-click', playerStop)
       RuntimeUtils.event.on('ended', endevent)
       listenerMessage('sendResult', sendResult)
@@ -846,8 +875,8 @@ export default defineComponent({
     })
 
     onBeforeUnmount(() => {
-      runtime.audiosInstance?.audios[playUrl.value]?.removeEventListener('play', timeupdate)
-      runtime.audiosInstance?.audios[playUrl.value]?.removeEventListener('timeupdate', onProgress)
+      // runtime.audiosInstance?.audios[playUrl.value]?.removeEventListener('play', timeupdate)
+      // runtime.audiosInstance?.audios[playUrl.value]?.removeEventListener('timeupdate', onProgress)
       // RuntimeUtils.event.off('next-click', playerStop)
       RuntimeUtils.event.off('ended', endevent)
       RuntimeUtils.event.off('tickDestroy', cloudMetronome)

+ 3 - 3
src/subpages/colexiu/popups/evaluating/index.tsx

@@ -59,7 +59,7 @@ export default defineComponent({
           },
           body: {
             filePath: res?.content?.filePath,
-            recordId: props.data?.recordIdStr,
+            recordId: props.data?.recordId,
           },
         },
       })
@@ -96,10 +96,10 @@ export default defineComponent({
       if (detailState.isAppPlay || !browserInfo.isStudent) {
         confirmShow.value = true
       } else {
-        if (props.data?.recordIdStr) {
+        if (props.data?.recordId) {
           // 上传云端
           api_openAdjustRecording({
-            recordId: String(props.data?.recordIdStr),
+            recordId: String(props.data?.recordId),
             title: detailState.activeDetail?.musicSheetName || "曲谱演奏",
             coverImg: detailState.activeDetail?.titleImg || '',
           });