From 80f98b3243653d379fd40812d0076754e21ad1f2 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 2 May 2026 17:37:14 -0400 Subject: [PATCH] feat(flutter/player): MinstrelAudioHandler + just_audio + audio_service audio_service runs the handler in a background isolate; UI watches playbackState/mediaItem/queue streams through Riverpod. AndroidManifest gets the foreground-service media-playback permission; Info.plist gets UIBackgroundModes=audio. Bearer token attached to stream URLs via just_audio's per-source headers. --- .../android/app/src/main/AndroidManifest.xml | 19 ++++ flutter_client/ios/Runner/Info.plist | 4 + flutter_client/lib/main.dart | 19 +++- flutter_client/lib/player/audio_handler.dart | 89 +++++++++++++++++++ .../lib/player/player_provider.dart | 37 ++++++++ .../test/player/player_provider_test.dart | 24 +++++ 6 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 flutter_client/lib/player/audio_handler.dart create mode 100644 flutter_client/lib/player/player_provider.dart create mode 100644 flutter_client/test/player/player_provider_test.dart diff --git a/flutter_client/android/app/src/main/AndroidManifest.xml b/flutter_client/android/app/src/main/AndroidManifest.xml index 2dcc7e25..f341429d 100644 --- a/flutter_client/android/app/src/main/AndroidManifest.xml +++ b/flutter_client/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,8 @@ + + + + + + + + + + + + + +