From fafc39511b46ba8424960e3e2bff291ae70f231f Mon Sep 17 00:00:00 2001 From: sirmrak Date: Thu, 21 May 2026 15:47:09 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20Web=20Client=20=E2=80=94=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=84=D1=83=D0=BD?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D1=8F=20updateRmsMeter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: updateRmsMeter is not defined Решение: - Добавлена функция updateRmsMeter(level) - Добавлены DOM элементы rmsFill, rmsValue - Добавлена переменная rmsTimeout Теперь audio-level события обрабатываются корректно --- web-client/client.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/web-client/client.html b/web-client/client.html index 6c5fdcc..86cb553 100644 --- a/web-client/client.html +++ b/web-client/client.html @@ -361,6 +361,7 @@ let analyser = null; let source = null; let mediaStream = null; + let rmsTimeout = null; const canvas = document.getElementById('audioCanvas'); const ctx = canvas.getContext('2d'); @@ -383,6 +384,8 @@ const haStatusSpan = document.getElementById('haStatus'); const liveVolSpan = document.getElementById('liveVol'); const eventFeedDiv = document.getElementById('eventFeed'); + const rmsFill = document.getElementById('rmsFill'); + const rmsValue = document.getElementById('rmsValue'); function addEventToLog(message, type = 'info') { const time = new Date().toLocaleTimeString('ru-RU', {hour:'2-digit', minute:'2-digit', second:'2-digit'}); @@ -416,6 +419,20 @@ } } + // Update RMS meter + function updateRmsMeter(level) { + const percent = Math.min(100, Math.max(0, level * 100)); + rmsFill.style.width = percent + '%'; + rmsValue.textContent = level.toFixed(2); + + // Reset after 1 second of no audio + clearTimeout(rmsTimeout); + rmsTimeout = setTimeout(() => { + rmsFill.style.width = '0%'; + rmsValue.textContent = '0.00'; + }, 1000); + } + function sendCommand(command, payload = {}) { if(!ws || ws.readyState !== WebSocket.OPEN) { addEventToLog(`❌ Не удалось отправить: ${command} — нет соединения`);