diff --git a/android/src/services/audio.ts b/android/src/services/audio.ts index 7c1eef7..78979c4 100644 --- a/android/src/services/audio.ts +++ b/android/src/services/audio.ts @@ -1007,7 +1007,10 @@ class AudioService { } } - /** Audio aus lokaler Datei (file:// Pfad) in die Queue und abspielen. */ + /** Audio aus lokaler Datei (file:// Pfad) in die Queue und abspielen. + * Setzt zusaetzlich playbackStartTime + currentPlaybackMsgId damit ein + * Anruf waehrend dieses Playbacks korrekt erfasst wird (ohne dieses + * Tracking liefert captureInterruption nichts → kein Auto-Resume). */ async playFromPath(filePath: string): Promise { if (!filePath) return; try { @@ -1016,6 +1019,12 @@ class AudioService { console.warn('[Audio] Cache-Datei existiert nicht mehr:', cleanPath); return; } + const msgIdMatch = cleanPath.match(/([0-9a-f-]+)\.wav$/i); + if (msgIdMatch) { + this.currentPlaybackMsgId = msgIdMatch[1]; + // Start-Zeit so setzen dass elapsed = LEADING (≈ 0 nach captureInterruption-Berechnung) + this.playbackStartTime = Date.now() - this.LEADING_SILENCE_SEC * 1000; + } const b64 = await RNFS.readFile(cleanPath, 'base64'); this.playAudio(b64); } catch (err) {