feat(player): Wiedergabeposition merken und beim Laden fortsetzen
- MeloAudioHandler bekommt MeloDb per Konstruktor injiziert - Positions-Timer (alle 5s) schreibt db.recordPlayback(songId, positionMs) während aktiv abgespielt wird (songId aus mediaItem.extras['songId']) - loadPlaylist liest db.lastPosition() für den Start-Song und seekt vor dem play() an die gespeicherte Position, statt immer von vorne zu starten - shouldResumeAt() als reine, testbare Funktion extrahiert: kein Resume bei Position 0 oder innerhalb der letzten 3s einer bekannten Track-Dauer - dispose() zum gefahrlosen Abbrechen des Positions-Timers in Tests ohne vollen App-Lifecycle (super.stop() lässt sich in Widget-Tests wegen der aktiven playbackState-Pipe nicht gefahrlos aufrufen) - library_screen_test.dart: MeloAudioHandler-Konstruktion angepasst (db jetzt Pflichtparameter) + handler.dispose() im Teardown Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Haiku 4.5
parent
09dd4a4367
commit
edc93224b0
+1
-1
@@ -24,7 +24,7 @@ Future<void> main() async {
|
||||
_library = LibraryService(_db);
|
||||
_playlists = PlaylistService(_db);
|
||||
_handler = await AudioService.init(
|
||||
builder: () => MeloAudioHandler(),
|
||||
builder: () => MeloAudioHandler(db: _db),
|
||||
config: const AudioServiceConfig(
|
||||
androidNotificationChannelId: 'de.baka.melo.audio',
|
||||
androidNotificationChannelName: 'Melo',
|
||||
|
||||
Reference in New Issue
Block a user