ソースを参照

fix: #10877,耳机弹窗弹了多次问题修复

TIANYONG 1 年間 前
コミット
20b8544b15

+ 5 - 0
src/helpers/communication.ts

@@ -506,6 +506,11 @@ export const api_finishDelayCheck = (callback: any) => {
 	listenerMessage("finishDelayCheck", callback);
 };
 
+/** 监听延迟检测成功的回调 */
+export const api_remove_finishDelayCheck = (callback: any) => {
+	removeListenerMessage("finishDelayCheck", callback);
+};
+
 /** 监听APP播放进度 */
 export const simple_playProgress = (callback: any) => {
 	listenerMessage("api_playProgress", callback);

+ 4 - 1
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, api_startDelayCheck, api_cancelDelayCheck, api_closeDelayCheck, api_finishDelayCheck, api_retryEvaluating } from "/src/helpers/communication";
+import { api_getDeviceDelay, api_openAdjustRecording, api_proxyServiceMessage, api_videoUpdate, getEarphone, api_back, api_startDelayCheck, api_cancelDelayCheck, api_closeDelayCheck, api_finishDelayCheck, api_retryEvaluating, api_remove_finishDelayCheck } from "/src/helpers/communication";
 import EvaluatShare from "./evaluat-share";
 import { Vue3Lottie } from "vue3-lottie";
 import startData from "./data/start.json";
@@ -126,6 +126,8 @@ export default defineComponent({
 
     /** 校验耳机状态 */
     const checkEarphoneStatus = async (type?: string) => {
+      clearTimeout(checkErjiTimer);
+      checkErjiTimer = null;
       if (type !== "start") {
         // const erji = await checkUseEarphone();
         const res = await getEarphone();
@@ -445,6 +447,7 @@ export default defineComponent({
     });
     
     onUnmounted(() => {
+      api_remove_finishDelayCheck(handleFinishDelayCheck);
 			clearTimeout(checkErjiTimer);
       checkErjiTimer = null;
 		});

+ 4 - 1
src/view/evaluating/index.tsx

@@ -626,7 +626,10 @@ const handleAccompanyError = (res?: IPostMessage) => {
         }
         // 关闭节拍器
         closeTick();
-        api_closeDelayCheck({});
+        // socketerrror,才发送关闭延迟检测的消息
+        if (type === "socketError") {
+          api_closeDelayCheck({});
+        }
         evaluatingData.socketErrorStatus = 0;
         evaluatingData.socketErrorPop = type === "socketError" ? true : false;
         evaluatingData.isErrorState = true;