unlockTTS() schaltete bisher nur SpeechSynthesis frei. Der Web-Audio-Kontext für die satzweise Chunk-Wiedergabe (Server-TTS-Modi) wurde erst lazy im WS-Callback erzeugt — auf iOS startet ein so erzeugter AudioContext "suspended" und resume() außerhalb einer Geste wird abgelehnt -> stumme/blockierte Chunk-Wiedergabe. Fix: unlockTTS() legt den AudioContext jetzt in der Nutzergeste an, ruft resume() und spielt einen 1-Sample-Stille-Buffer (Standard-iOS-Unlock). Beide Freischaltungen (Geräte-TTS + Web-Audio) laufen unabhängig, auch wenn SpeechSynthesis fehlt. Verifiziert (Desktop-Chrome): Kontext wird in der Geste erzeugt, ist "running" und der Stille-Buffer läuft, bevor der erste Chunk eintrifft; Chunk-Wiedergabe weiterhin gapless. Echtes iOS Safari hier nicht testbar. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| app.js | ||
| apple-touch-icon.png | ||
| favicon-32.png | ||
| favicon.svg | ||
| index.html | ||