فهرست منبع

feat: 延迟检测修改

TIANYONG 7 ماه پیش
والد
کامیت
27cdf20673

+ 9 - 55
src/page-instrument/evaluat-model/index.tsx

@@ -10,7 +10,7 @@ import { getNoteByMeasuresSlursStart } from "/src/helpers/formateMusic";
 import { Icon, Popup, showToast, closeToast, showLoadingToast } from "vant";
 import EvaluatResult from "./evaluat-result";
 import EvaluatAudio from "./evaluat-audio";
-import { api_getDeviceDelay, api_openAdjustRecording, api_proxyServiceMessage, api_videoUpdate, getEarphone, api_back } from "/src/helpers/communication";
+import { api_getDeviceDelay, api_openAdjustRecording, api_proxyServiceMessage, api_videoUpdate, getEarphone, api_back, api_startDelayCheck } from "/src/helpers/communication";
 import EvaluatShare from "./evaluat-share";
 import { Vue3Lottie } from "vue3-lottie";
 import startData from "./data/start.json";
@@ -362,28 +362,16 @@ export default defineComponent({
         
       }
     }
-    onMounted(() => {
+    onMounted(async () => {
+      // 如果打开了延迟检测开关,需要先发送开始检测的消息
+      if (state.setting.soundEffect) {
+        await api_startDelayCheck({});
+      }
       evaluatingData.isDisabledPlayMusic = true;
       handlePerformDetection();
     });
     return () => (
       <div>
-        {/* <Transition name="pop-center">
-          {evaluatingData.websocketState && !evaluatingData.startBegin && evaluatingData.checkEnd && (
-            <div class={styles.startBtn} onClick={() => {
-              startBtnHandle()
-            }}>
-              <img src={iconEvaluat.evaluatingStart} />
-            </div>
-          )}
-        </Transition>
-        <Transition name="pop-center">
-          {evaluatingData.websocketState && evaluatingData.startBegin && (
-            <div class={styles.endBtn} onClick={() => handleEndBegin()}>
-              <img src={iconEvaluat.evaluatingEnd} />
-            </div>
-          )}
-        </Transition> */}
         <div class={styles.operatingBtn}>
           {evaluatingData.websocketState && !evaluatingData.startBegin && evaluatingData.checkEnd && (
               <img class={styles.iconBtn} src={headImg("icon_play.png")} 
@@ -398,19 +386,8 @@ export default defineComponent({
             </>
           )} 
         </div>
-        {/* <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>
-          </div>
-          <Vue3Lottie class={styles.dialogueIcon} animationData={startData}></Vue3Lottie>
-        </div>
-        <div style={{ display: evaluatingData.startBegin ? "" : "none" }} class={styles.dialogueBox} key="start">
-          <div class={styles.dialogueing}>收音中...</div>
-          <Vue3Lottie class={styles.dialogueIcon} animationData={startingData}></Vue3Lottie>
-        </div> */}
 
-        {evaluatingData.soundEffectMode && (
+        {/* {evaluatingData.soundEffectMode && (
           <DelayCheck
             onClose={() => {
               evaluatingData.soundEffectMode = false;
@@ -418,15 +395,10 @@ export default defineComponent({
             }}
             onBack={() => handleDelayBack()}
           />
-        )}
+        )} */}
+        
         {/* 倒计时 */}
         <Countdown />
-        {/* 预加载延迟检测组建 */}
-        {/* {evaluatingData.preloadJson && !evaluatingData.jsonLoadDone && (
-            <div class={styles.preJson}>
-              <DelayCheck />
-            </div>
-        )} */}
 
         <Popup teleport="body" closeOnClickOverlay={false} class={["popup-custom", "van-scale"]} transition="van-scale" v-model:show={evaluatingData.earphoneMode}>
           <Earphone
@@ -436,24 +408,6 @@ export default defineComponent({
             }}
           />
         </Popup>
-        {/* <Popup
-					teleport="body"
-					closeOnClickOverlay={false}
-					class={["popup-custom", "van-scale"]}
-					transition="van-scale"
-					v-model:show={evaluatingData.soundEffectMode}
-				>
-					<SoundEffect
-						onClose={(value: any) => {
-							evaluatingData.soundEffectMode = false;
-							if (value) {
-								state.setting.soundEffect = false;
-							}
-							handleEndSoundCheck();
-							handlePerformDetection();
-						}}
-					/>
-				</Popup> */}
 
         {/* 评测作业,非完整评测不显示评测结果弹窗 */}
         {

+ 1 - 1
src/page-instrument/header-top/index.tsx

@@ -78,7 +78,7 @@ export const headTopData = reactive({
       state.playIngSpeed = state.originSpeed;
       handleStartEvaluat();
       // 开发模式,把此处打开
-      state.modeType = "evaluating"
+      // state.modeType = "evaluating"
       // evaluatingData.rendered = true;
       // evaluatingData.soundEffectMode = true;
     } else if (value === "follow") {

+ 3 - 0
src/page-instrument/simple-detail/index.tsx

@@ -19,6 +19,7 @@ export default defineComponent({
 			// 播放进度
 			if (res?.data?.api === "playProgress") {
 				if (res?.data.data) {
+					state.playState = 'play';
 					console.log(res.data)
 				}
 			}
@@ -29,10 +30,12 @@ export default defineComponent({
 			await getMusicDetail(id);
 			detailData.isLoading = false;
 			state.isSingleLine = true;
+			state.isSimplePage = true;
 			window.addEventListener("message", communicateCb);
 		});
 
 		onUnmounted(() => {
+			state.isSimplePage = false;
 			window.removeEventListener("message", communicateCb);
 		});
 		/** 渲染完成 */

+ 3 - 1
src/state.ts

@@ -502,6 +502,8 @@ const state = reactive({
   musicLyricist: '',
   /** 加载中的文案 */
   loadingText: '音频资源加载中,请稍后…',
+  /** 是否是简单的单行谱模式页面 */
+  isSimplePage: false, 
 });
 const browserInfo = browser();
 let offset_duration = 0;
@@ -513,7 +515,7 @@ export const customData = reactive({
   customNoteCurrentTime: false,
 });
 /** 在渲染前后计算光标应该走到的音符 */
-const setStep = () => {
+export const setStep = () => {
   // console.log('播放状态',state.playState)
   if (state.playState !== "play") {
     console.log("暂停播放");

+ 3 - 2
src/view/evaluating/index.tsx

@@ -32,6 +32,7 @@ import {
 	api_midiMicDelay,
 	api_cloudSetCurrentTime,
 	api_cloudChangeSpeed,
+	api_startDelayCheck,
 } from "/src/helpers/communication";
 import state, {
 	IPlayState,
@@ -107,8 +108,8 @@ export const evaluatingData = reactive({
 	/** app播放结束状态,重新评测需要重置为 */
 	isAudioPlayEnd: false,
 	preloadJson: true, // 预加载延迟检测的资源
-	jsonLoading: false, // 延迟检测的资源加载中状态
-	jsonLoadDone: false, // 延迟检测的动画dom加载完成状态
+	jsonLoading: true, // 延迟检测的资源加载中状态
+	jsonLoadDone: true, // 延迟检测的动画dom加载完成状态
 	hideResultModal: false, // 评测作业,如果不是完整评测,需要隐藏评测结果弹窗
 	oneselfCancleEvaluating: false, // 是否是自主取消评测,自主取消评测,不生产评测记录
 });