Local Player ๐ต
May 8, 2026 ยท View on GitHub
Lightweight and modern local music player for Android
๐ฑ Features
- ๐ต Local Playback: Access your music without needing an internet connection
- ๐ Lyrics Support: View synchronized lyrics (LRC format) while playing
- ๐ Queue Management: Organize and reorder your upcoming songs with ease
- ๐ Advanced Search: Quickly find songs by title or artist
- ๐ Playback Modes:
- Shuffle
- Repeat one song
- Repeat all
- ๐ Audio Info: View format (FLAC, MP3, etc.) and bitrate
- ๐ Automatic Detection: The app automatically detects newly added songs
- ๐จ Modern Interface: Dark Material Design 3 UI
- ๐ฑ Notifications: Playback controls in the notification and lock screen
- ๐ฏ Miniplayer: Quick control without leaving the library
- ๐ Sorting: Sort by title (A-Z, Z-A) or artist
๐ธ Screenshots
๐ ๏ธ Technologies
- Language: Kotlin
- UI Framework: Jetpack Compose
- Design: Material Design 3
- Architecture: MVVM (Model-View-ViewModel)
- Audio: Android MediaPlayer
- Persistence: SharedPreferences & JSON Cache
- Coroutines: Kotlin Coroutines for asynchronous operations
๐ Requirements
- Android 7.0 (API 24) or higher
- Permissions:
READ_MEDIA_AUDIO(Android 13+)READ_EXTERNAL_STORAGE(Android 12 or lower)FOREGROUND_SERVICEFOREGROUND_SERVICE_MEDIA_PLAYBACKPOST_NOTIFICATIONS
๐ Installation
From Releases
- Go to the Releases section
- Download the APK file for the latest version
- Install the APK on your Android device
- Open the app and grant the required permissions
Build from Source
# Clone the repository
git clone https://github.com/cvc953/localplayer.git
cd localplayer
# Build with Gradle
./gradlew assembleRelease
# The APK will be generated in: app/build/outputs/apk/release/
๐ก Usage
-
First launch:
- Grant the media file access permission
- The app will automatically scan your music library
-
Play music:
- Tap any song in the list
- Use the miniplayer for quick controls
- Tap the miniplayer to open the full player
-
Manage the queue:
- Long-press a song and drag it to reorder
- Use the three-dot menu to add it to the queue
-
View lyrics:
- Place
.lrcor.ttmlfiles with the same name as your song - In the player, tap the lyrics icon
- Lyrics will synchronize automatically
- Place
-
Update the library:
- The app automatically detects new songs
- You can also refresh manually from the menu (โฎ โ Refresh library)
๐ Project Structure
localplayer/
โโโ app/
โ โโโ src/
โ โ โโโ main/
โ โ โ โโโ java/com/cvc953/localplayer/
โ โ โ โ โโโ model/ # Data models
โ โ โ โ โโโ ui/ # Compose screens
โ โ โ โ โโโ viewmodel/ # ViewModels
โ โ โ โ โโโ services/ # Background services
โ โ โ โ โโโ util/ # Utilities
โ โ โ โ โโโ MainActivity.kt
โ โ โ โโโ res/ # Resources
โ โ โ โโโ AndroidManifest.xml
โ โ โโโ test/
โ โโโ build.gradle.kts
โโโ gradle/
โโโ .github/
โ โโโ workflows/ # GitHub Actions
โโโ README.md
โโโ build.gradle.kts
๐ค Contributing
Contributions are welcome. Please:
- Fork the project
- Create a branch for your feature (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
๐ Reporting Issues
If you find a bug or have a suggestion, please open an issue.
๐ Roadmap
- Built-in equalizer
- Playlist support
- Home screen widgets
- Customizable themes
- Specific folder scanning
- Import/Export settings
- Sleep timer
๐ License
This project is licensed under the MIT License. See the LICENSE file for details.
๐ค Author
Cristian Villalobos - @cvc953