diff --git a/public/app.js b/public/app.js index 083a01d..ef9e438 100644 --- a/public/app.js +++ b/public/app.js @@ -53,6 +53,7 @@ let localMicGainNode; let localMicAnalyserNode; let localMicDestination; let micMeterAnimationFrame = 0; +let micMeterLevel = 0; let screenStream; let localPresentationTile; let events; @@ -757,6 +758,7 @@ function stopMicMeter() { cancelAnimationFrame(micMeterAnimationFrame); micMeterAnimationFrame = 0; } + micMeterLevel = 0; selfMicMeter.value = 0; } @@ -772,7 +774,10 @@ function startMicMeter() { const centered = (sample - 128) / 128; sum += centered * centered; } - selfMicMeter.value = Math.min(1, Math.sqrt(sum / samples.length) * 3); + const targetLevel = Math.min(1, Math.sqrt(sum / samples.length) * 3); + const smoothing = targetLevel > micMeterLevel ? 0.35 : 0.12; + micMeterLevel += (targetLevel - micMeterLevel) * smoothing; + selfMicMeter.value = micMeterLevel; micMeterAnimationFrame = requestAnimationFrame(tick); }; tick();