From f5970ce70003621a630312e73a50f18666af205d Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 10 May 2026 15:44:28 +0200 Subject: [PATCH] fix(audio): _firePlaybackStarted ueberschrieb playFromPath-Tracking mit leerem pcmMessageId MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Logs zeigten: playFromPath setzt currentPlaybackMsgId='db710ff3-...', 9s spaeter beim Anruf war captureInterruption msgId=(leer). Ursache: _firePlaybackStarted setzt currentPlaybackMsgId blind aus pcmMessageId — das ist beim Play-Button leer. Jetzt nur noch setzen wenn ein PCM-Stream laeuft. Play-Button und Resume- Sound setzen ihr Tracking selber im Caller. Co-Authored-By: Claude Opus 4.7 (1M context) --- android/src/services/audio.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/src/services/audio.ts b/android/src/services/audio.ts index 19a1d1c..52b0c85 100644 --- a/android/src/services/audio.ts +++ b/android/src/services/audio.ts @@ -1055,9 +1055,15 @@ class AudioService { } private _firePlaybackStarted(): void { - // Tracking fuer Auto-Resume nach Anruf-Pause - this.playbackStartTime = Date.now(); - this.currentPlaybackMsgId = this.pcmMessageId || ''; + // Tracking fuer Auto-Resume nach Anruf-Pause: NUR setzen wenn ein + // PCM-Stream laeuft (Live-TTS). Bei Play-Button / Resume-Sound hat der + // Caller (playFromPath / _playFromPathAtPosition) das Tracking schon + // korrekt mit der msgId aus dem Pfad gesetzt — sonst wuerden wir hier + // mit leerem pcmMessageId ueberschreiben. + if (this.pcmMessageId) { + this.playbackStartTime = Date.now(); + this.currentPlaybackMsgId = this.pcmMessageId; + } this.playbackStartedListeners.forEach(cb => { try { cb(); } catch (e) { console.warn('[Audio] playbackStarted listener err:', e); } });