diff --git a/android/src/services/audio.ts b/android/src/services/audio.ts index 7cd5903..21b2262 100644 --- a/android/src/services/audio.ts +++ b/android/src/services/audio.ts @@ -1518,6 +1518,18 @@ class AudioService { this.playbackStartTime = Date.now(); this.currentPlaybackMsgId = this.pcmMessageId; } + // AudioFocus EXPLIZIT fuer TTS halten — sonst pausiert Spotify zwar + // beim Recording-requestExclusive, der wird aber 800ms nach STT-Endpoint + // released (Brain-Processing-Gap), und wenn dann TTS startet ist niemand + // mehr Focus-Owner. Spotify pausiert evtl. implizit beim AudioTrack- + // USAGE_ASSISTANT, aber unsere nachtraegliche release+nudge-Sequenz + // kann es dann nicht zuverlaessig wieder anstossen. Mit explizitem + // requestDuck IST Spotify sauber-via-Focus pausiert, und der Release + // beim PcmPlaybackFinished triggert das normale "Owner fertig → resume"- + // Pattern in Spotify — funktioniert versionsunabhaengig. + // Pending Release-Timer canceln damit der nicht mitten in der TTS feuert. + this._cancelDeferredFocusRelease(); + AudioFocus?.requestDuck().catch(() => {}); this.playbackStartedListeners.forEach(cb => { try { cb(); } catch (e) { console.warn('[Audio] playbackStarted listener err:', e); } });