From d1bd036351333e6022ad8a0ade3903924ca79855 Mon Sep 17 00:00:00 2001 From: linyimin <18316471919@139.com> Date: Thu, 7 May 2026 18:30:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=AA=E4=BA=BA=E7=BB=83=E4=B9=A0?= =?UTF-8?q?=E6=8A=A5=E7=8E=AF=E5=AE=8C=E6=88=90=E4=B9=8B=E5=90=8E=E5=86=8D?= =?UTF-8?q?=E5=BC=B9=E7=BB=83=E4=B9=A0=E7=BB=93=E6=9E=9C=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit a6becf67ffabd346a9574428219fb667cf5f10cb) --- src/components/ShootProgress.vue | 2 +- src/pages/practise-one.vue | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/ShootProgress.vue b/src/components/ShootProgress.vue index 350472e..6ad4d49 100644 --- a/src/components/ShootProgress.vue +++ b/src/components/ShootProgress.vue @@ -139,7 +139,7 @@ async function onReceiveMessage(msg) { halfTime.value = false; audioManager.play("比赛开始"); } else if (msg.type === MESSAGETYPESV2.BattleEnd) { - audioManager.play("比赛结束"); + audioManager.play("比赛结束", false); } else if (msg.type === MESSAGETYPESV2.ShootResult) { let arrow = {}; if (msg.details && Array.isArray(msg.details)) { diff --git a/src/pages/practise-one.vue b/src/pages/practise-one.vue index 27a2d21..9473cf6 100644 --- a/src/pages/practise-one.vue +++ b/src/pages/practise-one.vue @@ -59,7 +59,7 @@ async function onReceiveMessage(msg) { if (msg.type === MESSAGETYPESV2.ShootResult) { scores.value = msg.details; } else if (msg.type === MESSAGETYPESV2.BattleEnd) { - setTimeout(onOver, 1500); + // setTimeout(onOver, 1500); } } @@ -84,6 +84,12 @@ const onClickShare = debounce(async () => { await wxShare("shareCanvas"); }); +function onAudioEnded(s) { + if (s.indexOf("比赛结束") >= 0) { + onOver() + } +} + onMounted(async () => { // audioManager.play("第一轮"); uni.setKeepScreenOn({ @@ -91,6 +97,7 @@ onMounted(async () => { }); uni.$on("socket-inbox", onReceiveMessage); uni.$on("share-image", onClickShare); + uni.$on("audioEnded", onAudioEnded); const result = await createPractiseAPI(total, 120, targetType.value); if (result) practiseId.value = result.id; }); @@ -101,6 +108,7 @@ onBeforeUnmount(() => { }); uni.$off("socket-inbox", onReceiveMessage); uni.$off("share-image", onClickShare); + uni.$off("audioEnded", onAudioEnded); audioManager.stopAll(); endPractiseAPI(); });