Skip to content

sairo001/Music_player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 Neon Music Player

A modern Android music player built with Kotlin and Jetpack Compose. Neon scans your device's local audio library, delivers a sleek playback experience, and provides comprehensive playlist and favorite management.


✨ Features

  • 🎧 Local Music Library Scanner — Uses Android MediaStore to discover all audio files on your device
  • 🔍 Smart Search & Filter — Find songs by title, artist, or album
  • 📋 Playlist Management — Create, customize, add, and delete playlists
  • ❤️ Favorites Support — Save your favorite songs with persistent storage via Room database
  • 🎼 Dual Player Interface — Mini-player on library screen + full immersive overlay player
  • ⏯️ Playback Controls — Play/pause, next, previous, seek, shuffle, and repeat modes
  • 🎨 Animated UI — Rotating vinyl disc visualization and dynamic waveform display
  • Sleep Timer — Set automatic playback stop after a selected duration
  • 🔔 Foreground Service — Persistent playback with system notification media controls
  • 🔐 Runtime Permissions — Secure audio access and notification permissions handling

🏗️ Architecture

Component Description
MainActivity.kt App entry point with splash screen and library navigation
MusicViewModel.kt State management, audio scanning, playback control, and playlist/favorite actions
MusicRepository.kt Handles MediaStore queries and Room database persistence
MusicPlayerController.kt Core playback engine with shuffle, repeat, queue management, and progress tracking
MusicService.kt Foreground service for persistent playback and system media controls
UI Screens Located in app/src/main/java/com/example/ui/screens/

📱 Screens

Screen Purpose
SplashScreen Launch animation before opening the library
LibraryScreen Browse songs, manage playlists, view favorites, search, and access mini-player
PlayerScreen Full-screen player with rich visual controls and animations

🚀 Build & Run

  1. Clone & Open — Open the project in Android Studio
  2. Sync Gradle — Ensure Gradle syncs and Android SDK is configured
  3. Grant Permissions — Allow audio and notification permissions when prompted
  4. Run — Execute on a device or emulator with local audio files

📁 Project Structure

Music_player/
├── app/
│   ├── src/main/java/com/example/
│   │   ├── MainActivity.kt
│   │   ├── MusicViewModel.kt
│   │   ├── MusicRepository.kt
│   │   ├── MusicPlayerController.kt
│   │   ├── MusicService.kt
│   │   └── ui/screens/
│   └── src/main/res/
└── gradle/

📝 Notes

  • Local Playback Only — This app is designed for local audio files and does not include online streaming
  • Permissions Required — Device and media permissions are necessary to scan and play audio files
  • Room Database — Playlists and favorites are persisted locally on the device

🛠️ Tech Stack

  • Language — Kotlin 100%
  • UI Framework — Jetpack Compose
  • Architecture — MVVM (Model-View-ViewModel)
  • Database — Room
  • Audio — Android MediaStore & MediaPlayer
  • Services — Foreground Service for background playback

📄 License

This is a basic Android mobile application project.


Happy Listening! 🎶

About

Basic Android Mobile Application

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages