A Flutter plugin for playing audio from assets, network, files, and live streams with multi-platform support and notifications.
assets_audio_player is a Flutter plugin for playing audio files from various sources including app assets, network URLs, local files, and live streams. It solves the need for a unified audio playback solution across Android, iOS, web, and macOS, supporting features like simultaneous playback, system notifications, and playlist management.
Flutter developers building audio-centric applications such as music players, podcast apps, radio streamers, or any app requiring background audio playback with notifications.
Developers choose assets_audio_player for its extensive feature set, cross-platform consistency, and ease of integration—offering a single plugin that handles multiple audio sources, notifications, and real-time controls without platform-specific code.
Play simultaneously music/audio from assets/network/file directly from Flutter, compatible with android / ios / web / macos, displays notifications
Supports playback from app assets, network URLs, local files, and live streams (including HLS, DASH, SmoothStream), eliminating the need for multiple plugins for different audio sources.
Provides a unified API for Android, iOS, web, and macOS with core features like playback, seek, and volume control working consistently across all platforms, as shown in the compatibility tables.
Allows creating multiple players via AssetsAudioPlayer.newPlayer() for parallel audio tracks, enabling apps to play background music with overlapping sound effects or cues.
Offers customizable system notifications with metadata support on Android and iOS, including Bluetooth action handling, enhancing user experience for background audio apps.
Exposes ValueObservable streams for position, volume, and playback state, coupled with ready-to-use PlayerBuilder widgets for reactive UI updates without boilerplate code.
Critical features like system notifications, Bluetooth actions, and pitch control are missing on web and macOS, limiting full cross-platform parity despite broad compatibility claims.
Setting up network playback and custom notifications requires manual edits to platform-specific files (e.g., AndroidManifest.xml, info.plist), adding complexity and potential for errors.
Focuses solely on playback without built-in support for audio effects, equalizers, or recording, which may necessitate additional plugins for advanced audio applications.
Default error behavior stops playback, requiring developers to manually implement custom recovery strategies via onErrorDo, which can be cumbersome for robust error management.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.