From 3bc490b485767b3366d957d137dfc182a408af14 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 10 May 2026 17:02:01 +0200 Subject: [PATCH] =?UTF-8?q?fix(audio):=20stopPlayback=20idempotent=20?= =?UTF-8?q?=E2=80=94=20kein=20doppelter=20Focus-Kick?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-Renders / setInterval(loadSettings) triggern setMuted(true) oft mehrfach hintereinander → jeder weitere stopPlayback rief erneut kickReleaseMedia, Spotify pausierte+resumte mehrfach (Stefan: "spielt kurz und pausiert dann wieder"). Fix: stopPlayback returnt sofort wenn nichts mehr aktiv ist. Co-Authored-By: Claude Opus 4.7 (1M context) --- android/src/services/audio.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/android/src/services/audio.ts b/android/src/services/audio.ts index ebea3c3..e6bfa82 100644 --- a/android/src/services/audio.ts +++ b/android/src/services/audio.ts @@ -1191,6 +1191,12 @@ class AudioService { /** Laufende Wiedergabe stoppen + Queue leeren */ stopPlayback(): void { + // Idempotent: wenn nichts mehr aktiv ist, NICHT noch einen Focus-Release/ + // Kick-Cycle anstossen — Re-Renders triggern setMuted oft mehrfach hinter- + // einander, und jeder weitere Kick lässt Spotify nochmal kurz pausieren. + const hasAnything = !!(this.currentSound || this.resumeSound || this.preloadedSound + || this.pcmStreamActive || this.audioQueue.length || this.isPlaying); + if (!hasAnything) return; console.log('[Audio] stopPlayback: currentSound=%s queue=%d pcm=%s', this.currentSound ? 'aktiv' : 'null', this.audioQueue.length, this.pcmStreamActive); // Foreground-Service auch stoppen — sonst bleibt die Notification haengen