Skip to content

Repository files navigation

Beats Music Player 🎵

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.

✨ Features

  • 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.

🛠️ Tech Stack

  • 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

🚀 Getting Started

Prerequisites

  • Flutter SDK (>= 3.0.0)
  • Android Studio / VS Code with Flutter extension
  • Android Device or Emulator (Android 11+ recommended for proper storage permissions)

Installation

  1. Clone this repository:
    git clone https://github.com/TharushaAkash/MusicPlayer.git
  2. Navigate to the project directory:
    cd MusicPlayer
  3. Install dependencies:
    flutter pub get
  4. Run the app:
    flutter run

📂 Project Structure

  • 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.

🔒 Permissions Required

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 .flac files.
  • Notifications: To show background playback controls in the status bar.
  • Microphone (Optional): Used for audio visualizer data on certain devices.

Made with ❤️ using Flutter

About

🎵 Beats - A Spotify-inspired Flutter music player with glassmorphism UI, YouTube streaming & Sri Lankan radio

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages