From 4f72a516d3e725dd5e714f548017b275a9c30187 Mon Sep 17 00:00:00 2001 From: lww155 <756794909@qq.com> Date: Wed, 4 Feb 2026 09:54:56 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=BD=95=E9=9F=B3=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=98=B2=E6=8A=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/test/js/ui/controller.js | 37 ++++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/main/xiaozhi-server/test/js/ui/controller.js b/main/xiaozhi-server/test/js/ui/controller.js index 731f7bf4..1ff1246c 100644 --- a/main/xiaozhi-server/test/js/ui/controller.js +++ b/main/xiaozhi-server/test/js/ui/controller.js @@ -168,23 +168,30 @@ class UIController { // Record button const recordBtn = document.getElementById('recordBtn'); if (recordBtn) { + let recordTimer = null; recordBtn.addEventListener('click', () => { - const audioRecorder = getAudioRecorder(); - if (audioRecorder.isRecording) { - audioRecorder.stop(); - // Restore record button to normal state - recordBtn.classList.remove('recording'); - recordBtn.querySelector('.btn-text').textContent = '录音'; - } else { - // Update button state to recording - recordBtn.classList.add('recording'); - recordBtn.querySelector('.btn-text').textContent = '录音中'; - - // Start recording, update button state after delay - setTimeout(() => { - audioRecorder.start(); - }, 100); + if (recordTimer) { + clearTimeout(recordTimer); + recordTimer = null; } + recordTimer = setTimeout(() => { + const audioRecorder = getAudioRecorder(); + if (audioRecorder.isRecording) { + audioRecorder.stop(); + // Restore record button to normal state + recordBtn.classList.remove('recording'); + recordBtn.querySelector('.btn-text').textContent = '录音'; + } else { + // Update button state to recording + recordBtn.classList.add('recording'); + recordBtn.querySelector('.btn-text').textContent = '录音中'; + + // Start recording, update button state after delay + setTimeout(() => { + audioRecorder.start(); + }, 100); + } + }, 300); }); }