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