From 220f00c1697d017bc129ffaec2b19c3d3e39c870 Mon Sep 17 00:00:00 2001 From: zhangjiming Date: Tue, 11 Mar 2025 16:34:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B9=E5=90=91=E9=94=99=E8=AF=AF=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E9=9F=B3=E9=A2=91=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/audio/alert_left.mp3 | Bin 0 -> 8301 bytes src/pages/measure/components/MeasureAction.tsx | 25 +++++++++++++++++++------ src/services/wsTypes.ts | 3 ++- 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 public/audio/alert_left.mp3 diff --git a/public/audio/alert_left.mp3 b/public/audio/alert_left.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f597e87d4436cbd0a01ba006a8b5283685519a0e GIT binary patch literal 8301 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 YWw-pdgZTOLpX2Mlwf+C7{%`yL2dc=q4FCWD literal 0 HcmV?d00001 diff --git a/src/pages/measure/components/MeasureAction.tsx b/src/pages/measure/components/MeasureAction.tsx index 57688ed..ab06787 100644 --- a/src/pages/measure/components/MeasureAction.tsx +++ b/src/pages/measure/components/MeasureAction.tsx @@ -92,7 +92,6 @@ export default function MeasureAction() { }); }; - // 开始/重新测量按钮点击事件 const onStart = () => { if (startBtnText === "新测量") { @@ -168,9 +167,7 @@ export default function MeasureAction() { /** ----------------------- WebSocket 消息处理 ----------------------- **/ useEffect(() => { // 处理任务状态消息 - const handleStateMessage = (state: MeasureState["data"]) => { - - }; + const handleStateMessage = (state: MeasureState["data"]) => {}; // 处理事件消息 const handleEventMessage = (type: TaskState["data"]) => { @@ -236,6 +233,22 @@ export default function MeasureAction() { console.error("播放音频时出错:", err); }); break; + case "WRONG_SIDE": + const audio5 = new Audio("/audio/alert_left.mp3"); + // 播放音频 + audio5 + .play() + .then(() => { + console.log("音频开始播放"); + }) + .catch(err => { + console.error("播放音频时出错:", err); + }); + // 把状态全部置灰 + updated.forEach(u => (u.color = "h")); + // 调用重新测量 + onStart(); + break; default: break; } @@ -255,8 +268,8 @@ export default function MeasureAction() { } }; - const subscription = wsClient.dataOb.subscribe((data) => { - if ( data.path === "/api/measurement-task/get-task-state") { + const subscription = wsClient.dataOb.subscribe(data => { + if (data.path === "/api/measurement-task/get-task-state") { handleStateMessage(data.data); } else if (data.path === "/api/measurement-task/event") { handleEventMessage(data.data); diff --git a/src/services/wsTypes.ts b/src/services/wsTypes.ts index 3a3ee86..699f8a4 100644 --- a/src/services/wsTypes.ts +++ b/src/services/wsTypes.ts @@ -11,7 +11,8 @@ export type TaskState = { | "FINISH_RECORD_LEFT" | "END_RECORD_SIG" | "END_RECORD" - | "START_RECORD_RIGHT"; + | "START_RECORD_RIGHT" + | "WRONG_SIDE"; // data: { // event: "START_RECORD_SIG" | "END_RECORD_SIG" | "FINISHED" | "START_RECORD_LEFT" | "FINISH_RECORD_RIGHT" | "FINISH_RECORD" | "FINISH_RECORD_LEFT" | "END_RECORD_SIG" | "END_RECORD" | "START_RECORD_RIGHT"; // };