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(); });