A beautifully designed, premium offline and online music player built with Flutter. "Beats" brings a modern, Spotify-like aesthetic with immersive glassmorphism, dynamic theme colors, and a rich set of features tailored for music lovers.
- Premium Modern UI: A sleek, pitch-black dark mode (
#121212) inspired by Spotify, featuring rounded cards and soft glows. - YouTube Music Integration: Stream full high-quality audio directly from YouTube, categorized by mood with a stunning card-based UI.
- Dynamic Color Engine: The entire app's primary accent color smoothly transitions and cycles dynamically across vibrant neon colors over time.
- Glassmorphism Design: The Player Screen uses real-time blurring and glassmorphic overlays over the album art to create an immersive playback experience.
- Audio Visualizer: Real-time circular audio visualizer that syncs perfectly with your music.
- Floating Mini-Player: Seamlessly control your music from anywhere in the app with a floating glass mini-player.
- Online Radio Streaming: Built-in support for Sri Lankan radio channels (Hiru, Gold, E FM, Kiss FM, Sirasa, Neth, Y FM, Ran, FM Derana).
- Library Management: Automatic SD Card and Internal Storage scanning. View your music by Playlists, Folders, and Favorites.
- Background Playback: Full background audio support with lock-screen controls and media notifications using
audio_service.
- Framework: Flutter (Dart)
- Audio Playback:
just_audio,audio_session,audio_service - State Management:
provider - File System/Storage:
path_provider,shared_preferences,permission_handler - Network/Downloads:
dio,http,url_launcher
- Flutter SDK (>= 3.0.0)
- Android Studio / VS Code with Flutter extension
- Android Device or Emulator (Android 11+ recommended for proper storage permissions)
- Clone this repository:
git clone https://github.com/TharushaAkash/MusicPlayer.git
- Navigate to the project directory:
cd MusicPlayer - Install dependencies:
flutter pub get
- Run the app:
flutter run
lib/screens/: Contains all UI screens (Home, Player, Radio, Search, Playlists, Folders).lib/services/: Core logic (MusicService, AudioHandler, YouTube API).lib/models/: Data models for Songs and Playlists.lib/widgets/: Reusable components like the Audio Visualizer and Glass containers.
To provide a seamless experience, Beats requires the following permissions on Android:
- Storage/Manage External Storage: To scan and play local
.mp3,.m4a,.wav, and.flacfiles. - Notifications: To show background playback controls in the status bar.
- Microphone (Optional): Used for audio visualizer data on certain devices.
Made with ❤️ using Flutter




