From facde1fef7fb66a7edfc586591e0e8c8fbdb2e5f Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 10 May 2026 17:13:12 +0200 Subject: [PATCH] =?UTF-8?q?fix(audio):=20kickReleaseMedia=20auch=20im=20PC?= =?UTF-8?q?M-Pfad=20=E2=80=94=20re-renderte=20Antworten=20muteten=20Spotif?= =?UTF-8?q?y=20dauerhaft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stefan: ältere Nachrichten (deren Cache-WAV weg ist) gehen ueber tts_request neu rendern → kommen als PCM-Stream zurueck → werden ueber PcmStreamPlayer abgespielt. Beim Mute lief stopPlayback aber ohne den Spotify-resume-Kick weil hadRnSound=false war (kein currentSound). Jetzt: kickReleaseMedia immer in stopPlayback rufen — kostet nichts, deckt PCM- und RNSound-Pfad ab. Co-Authored-By: Claude Opus 4.7 (1M context) --- android/src/services/audio.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/android/src/services/audio.ts b/android/src/services/audio.ts index e6bfa82..22c2136 100644 --- a/android/src/services/audio.ts +++ b/android/src/services/audio.ts @@ -1204,10 +1204,6 @@ class AudioService { stopBackgroundAudio().catch(() => {}); this.audioQueue = []; this.isPlaying = false; - // Merken: war ein react-native-sound-Sound aktiv? Dann muessen wir nach - // release() den Focus-Stack aufmischen (RNSound-Bug: stop+release laesst - // den AudioFocusRequest haengen, Spotify resumed sonst nicht). - const hadRnSound = !!(this.currentSound || this.resumeSound || this.preloadedSound); if (this.currentSound) { this.currentSound.stop(); this.currentSound.release(); @@ -1236,11 +1232,10 @@ class AudioService { // Audio-Focus sofort freigeben — User hat explizit abgebrochen this._cancelDeferredFocusRelease(); AudioFocus?.release().catch(() => {}); - if (hadRnSound) { - // RNSound's haengender USAGE_MEDIA-Focus aufloesen — sonst bleibt - // Spotify pausiert obwohl unser Focus released ist. - AudioFocus?.kickReleaseMedia?.().catch(() => {}); - } + // Focus-Stack immer aufmischen — bei aelteren Nachrichten die ueber + // tts_request (PCM-Stream) re-rendert wurden, bleibt Spotify ohne den + // Kick auch pausiert. Kostet nichts, deckt beide Pfade ab. + AudioFocus?.kickReleaseMedia?.().catch(() => {}); } // --- Status & Callbacks ---