All checks were successful
Deploy / deploy (push) Successful in 1m45s
iOS Safari блокирует <audio>.play() даже после silent-WAV unlock — каждый new Audio() считается новым элементом без gesture. Решение: при тапе кнопки в VoiceController создаём общий AudioContext (под user-gesture) и пробуждаем его. VoiceOverlay теперь играет TTS через этот ctx (decodeAudioData + BufferSource). HTMLAudioElement остаётся fallback'ом если ctx недоступен. decodeAudioData в Safari исторически callback, в Chrome — Promise: используем оба варианта.
13 KiB
13 KiB