Hi! We open-sourced mt_audio, a stream-based audio module for Flutter that wraps just_audio + audio_service behind a single facade.
We built this because in multiple production apps (podcast/radio/audiobook-like flows) we kept re-implementing the same glue: background playback, notifications, queue handling, stream/state wiring, and integration edge cases. The goal is a small dependency that gives a consistent API and reduces app-level complexity (no required external state management).
Key features:
background playback + system notifications
queue management (playlist-first workflows)
Android Auto & Apple CarPlay support behind the same facade
example app + ready UI widgets (Now Playing / controls)
Feedback welcome — especially on API shape, missing edge cases, and docs/examples.
We wanted a single facade with streams as the primary integration surface (so UI/state layers can stay thin).
We intentionally avoid forcing any state management library; you can use BLoC/Riverpod/etc. on top.
The package focuses on the common audio app workflows (queue-first), rather than exposing every low-level knob.
If you’ve shipped audio in Flutter: what were your biggest pain points (background quirks, interruptions, lock screen controls, queue sync, etc.)?
reply