mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-05-14 17:55:08 +00:00
Audio: unlock on first user gesture after restore
When audio was previously enabled, registers one-shot click/touch/key listener to init AudioContext on first interaction. Any tap on the page is enough — no need to toggle the checkbox.
This commit is contained in:
+13
-2
@@ -171,11 +171,22 @@
|
||||
const savedBpm = localStorage.getItem('live-audio-bpm');
|
||||
if (savedBpm) bpm = parseInt(savedBpm, 10) || 120;
|
||||
const savedVol = localStorage.getItem('live-audio-volume');
|
||||
// Don't create AudioContext here — no user gesture yet, browser will suspend it.
|
||||
// Just store the desired volume; initAudio() will apply it when user interacts.
|
||||
if (savedVol) _pendingVolume = parseFloat(savedVol) || 0.3;
|
||||
const savedVoice = localStorage.getItem('live-audio-voice');
|
||||
if (savedVoice) setVoice(savedVoice);
|
||||
|
||||
// If audio was enabled, wait for ANY user gesture to init context
|
||||
if (audioEnabled) {
|
||||
const unlockAudio = () => {
|
||||
initAudio();
|
||||
document.removeEventListener('click', unlockAudio, true);
|
||||
document.removeEventListener('touchstart', unlockAudio, true);
|
||||
document.removeEventListener('keydown', unlockAudio, true);
|
||||
};
|
||||
document.addEventListener('click', unlockAudio, true);
|
||||
document.addEventListener('touchstart', unlockAudio, true);
|
||||
document.addEventListener('keydown', unlockAudio, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Export engine + helpers for voice modules
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@
|
||||
<script src="nodes.js?v=1774126708" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="traces.js?v=1774135052" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="analytics.js?v=1774126708" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="audio.js?v=1774200342" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="audio.js?v=1774200420" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="audio-v1-constellation.js?v=1774199178" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="live.js?v=1774199178" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="observers.js?v=1774290000" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
|
||||
Reference in New Issue
Block a user