From 95b340a7a30dce58adb638c44ae36cc894ec2792 Mon Sep 17 00:00:00 2001 From: lww155 <756794909@qq.com> Date: Tue, 20 Jan 2026 17:39:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=AA=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E8=AE=BE=E5=A4=87=E6=97=B6=E7=8A=B6=E6=80=81=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/js/core/network/websocket.js | 2 ++ main/xiaozhi-server/test/js/ui/controller.js | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/main/xiaozhi-server/test/js/core/network/websocket.js b/main/xiaozhi-server/test/js/core/network/websocket.js index fe0b252a..187a57e4 100644 --- a/main/xiaozhi-server/test/js/core/network/websocket.js +++ b/main/xiaozhi-server/test/js/core/network/websocket.js @@ -17,6 +17,7 @@ export class WebSocketHandler { this.onChatMessage = null; // 新增:聊天消息回调 this.currentSessionId = null; this.isRemoteSpeaking = false; + this.isEstablishConnection = false; // 新增:是否已建立连接 } // 发送hello握手消息 @@ -73,6 +74,7 @@ export class WebSocketHandler { handleTextMessage(message) { if (message.type === 'hello') { log(`服务器回应:${JSON.stringify(message, null, 2)}`, 'success'); + this.isEstablishConnection = true; } else if (message.type === 'tts') { this.handleTTSMessage(message); } else if (message.type === 'audio') { diff --git a/main/xiaozhi-server/test/js/ui/controller.js b/main/xiaozhi-server/test/js/ui/controller.js index 88615caf..6cf2def7 100644 --- a/main/xiaozhi-server/test/js/ui/controller.js +++ b/main/xiaozhi-server/test/js/ui/controller.js @@ -347,6 +347,14 @@ class UIController { this.addChatMessage('配置已保存', false); } + // 处理未绑定设备事件 + handleUnboundDevice() { + const dialBtn = document.getElementById('dialBtn'); + if (dialBtn) { + dialBtn.click(); + } + } + // 拨号成功后直接开始录音 dialAndRecord() { const recordBtn = document.getElementById('recordBtn'); @@ -355,7 +363,11 @@ class UIController { if (wsHandler.isConnected() && wsHandler.websocket.onopen) { clearInterval(this.wsTimer); this.wsTimer = null; - recordBtn.click(); + if (wsHandler.isEstablishConnection) { + recordBtn.click(); + } else { + this.handleUnboundDevice(); + } return; } }, 500); @@ -451,7 +463,7 @@ class UIController { dialBtn.querySelector('.btn-text').textContent = '挂断'; dialBtn.classList.add('dial-active'); - this.dialAndRecord(); + this.dialAndRecord(); } this.hideModal('settingsModal');