fix:替换射击无效语音,开战房间播放靶纸尺寸语音

This commit is contained in:
2026-05-14 15:43:39 +08:00
parent 79088d0902
commit df2e8c80bb
3 changed files with 16 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ import {
import { MESSAGETYPES, MESSAGETYPESV2 } from "@/constants";
import useStore from "@/store";
import { storeToRefs } from "pinia";
import audioManager from "@/audioManager";
const store = useStore();
const { user } = storeToRefs(store);
@@ -55,6 +56,8 @@ const ready = ref(false);
const allReady = ref(false);
const timer = ref(null);
const goBattle = ref(false);
/** 从结算页返回时为 true跳过进场靶纸语音 */
const skipTargetAudio = ref(false);
/**
* 从服务端刷新当前房间数据,更新成员列表、准备状态等信息
@@ -301,6 +304,8 @@ onShow(() => {
* - 同步到 Pinia Store供 Header 组件展示房号胶囊)
*/
onLoad(async (options) => {
// 从结算页跳回时携带 fromResult=1标记跳过进场语音
if (options.fromResult) skipTargetAudio.value = true;
if (options.roomNumber) {
roomNumber.value = options.roomNumber;
store.updateRoomNumber(options.roomNumber);
@@ -325,6 +330,13 @@ onMounted(() => {
keepScreenOn: true,
});
uni.$on("socket-inbox", onReceiveMessage);
// 页面加载完成 1 秒后根据靶纸尺寸播报对应语音;从结算页返回时跳过
setTimeout(() => {
if (!skipTargetAudio.value) {
const key = targetSize.value === 40 ? '40CM全环靶' : '20CM全环靶';
audioManager.play(key);
}
}, 1000);
});
onBeforeUnmount(() => {

View File

@@ -275,7 +275,7 @@ async function exit() {
return;
}
uni.redirectTo({
url: `/pages/battle-room?roomNumber=${data.value.roomId}`,
url: `/pages/battle-room?roomNumber=${data.value.roomId}&fromResult=1`,
});
} else {
uni.redirectTo({