The Ultimate Premium Offline Media Player for Android
Features โข Quick Start โข Architecture โข Documentation โข Contributing
FastBeat is a powerful, modern, and beautifully designed offline media player built from the ground up to deliver a premium experience for both video and audio. Built with the latest Android technologies (Kotlin, Jetpack Compose, Media3, Room, Hilt), it provides a seamless and immersive way to enjoy your local media without any internet connection.
Whether you're watching high-definition movies with advanced gesture controls and Picture-in-Picture mode, or listening to your music library with a smart queue system and rich analytics, FastBeat is designed to be your all-in-one media companion. It respects your privacy by remaining 100% offline, ensuring your data never leaves your device.
| Traditional Media Players | FastBeat Solution |
|---|---|
| Clunky, outdated UI | Modern, Fluid Jetpack Compose UI |
| Ad-heavy and online-focused | 100% Offline & Ad-Free Experience |
| Basic playback controls | Advanced Gestures, PiP, & Smart Queue |
| No insights into habits | Rich Analytics & Activity Dashboard |
- High-Performance Playback โ Smooth offline video playback powered by AndroidX Media3 (ExoPlayer).
- Intuitive Gestures โ Swipe left/right for brightness/volume, swipe horizontally to seek.
- Picture-in-Picture (PiP) โ Continue watching in a floating window while using other apps.
- Multi-Track Support โ Easily switch between audio tracks and subtitle tracks.
- Smart Queue System โ Persistent playback queue that remembers your position across restarts.
- Infinite Playback โ Auto-refills with shuffled tracks when your queue ends.
- Rich Library Management โ Advanced sorting and real-time search across tracks, albums, and playlists.
- Mini Player โ Always-visible persistent player bar with gradient progress.
- Real-time Stats โ Track your daily, weekly, and monthly listening time.
- Activity Streaks โ Maintain your daily listening streak.
- Smart Insights โ Discover your most played tracks and current obsessions.
- Playback History โ Complete log of your recently played media.
- Instant Gallery โ View all device images in a sleek, staggered grid.
- Fullscreen Viewer โ Edge-to-edge, swipeable image viewing experience.
- Scoped Storage Support โ Safely delete or manage media with Android 11+ compatibility.
- Curated Themes โ Choose from Amber Horizon, Digital Waves, or Eco Frequency.
- Dynamic Dark Mode โ Full support for Light and Dark modes across all themes.
- Animated Transitions โ Smooth navigation and UI interactions.
- Auto-Grouping โ Videos automatically organized by folders.
- Continue Watching โ Resume unfinished videos exactly where you left off.
- Fast Thumbnails โ Background-cached video thumbnails for instant browsing.
| Video Player | Audio Library |
|---|---|
![]() |
![]() |
| Advanced Gestures & PiP | Smart Search & Sorting |
| Analytics Dashboard | Image Gallery |
|---|---|
![]() |
![]() |
| Listening Habits & Streaks | Staggered Grid View |
Ensure you have the following installed:
- Android Studio (Iguana / Jellyfish or newer)
- JDK 11+
- Android SDK 35 (Target API 35)
-
Clone the repository
git clone https://github.com/yourusername/FastBeat.git cd FastBeat -
Sync Project Open the project in Android Studio and let Gradle sync.
-
Install Dependencies The project uses a Version Catalog (
gradle/libs.versions.toml)../gradlew build
-
Run the application Press Shift + F10 or the Play button in Android Studio with an emulator or physical device (API 26+) connected.
# Generate Debug APK
./gradlew assembleDebug
# Generate Release APK
./gradlew assembleReleaseFastBeat follows the MVVM (Model-View-ViewModel) architectural pattern with a clean separation of concerns and a robust Repository layer.
[ UI Layer (Compose) ]
|
v
[ ViewModel (StateFlow) ] <---> [ Media3 Playback Service ]
|
v
[ Repository Layer ]
|
+-----------------------+
| |
[ Room Database ] [ MediaStore (Local) ]
| Pattern/Decision | Purpose | Benefit |
|---|---|---|
| Jetpack Compose | UI Framework | Declarative UI, faster development, and modern animations. |
| AndroidX Media3 | Media Engine | Unified API for playback and sessions, replacing legacy ExoPlayer. |
| Dagger Hilt | Dependency Injection | Compile-time validation and easy management of scoped dependencies. |
| Room DB | Local Persistence | Type-safe database access for playlists, history, and stats. |
| Technology | Version | Purpose |
|---|---|---|
| Kotlin | 2.2.10 | Core programming language. |
| Jetpack Compose | 1.7.x | Declarative UI framework. |
| AndroidX Media3 | 1.2.1 | Playback engine and media session management. |
| Room | 2.7.0-alpha11 | Local database for offline storage. |
| Dagger Hilt | 2.58 | Dependency injection framework. |
[libraries]
androidx-media3-exoplayer = "1.2.1"
androidx-room-runtime = "2.7.0-alpha11"
hilt-android = "2.58"
coil-compose = "2.6.0" # Image Loading
gson = "2.10.1" # JSON PersistenceComprehensive documentation is available in the docs/ directory:
| Document | Description |
|---|---|
| Getting Started | Detailed installation and developer onboarding. |
| Features Guide | Deep dive into all available features and roadmap. |
| Contributing | Guidelines for contributing to the project. |
| License | MIT License details. |
app/src/main/java/com/local/offlinemediaplayer/
โโโ data/ # Room DB, ThumbnailManager, DI modules
โโโ model/ # Domain models (MediaFile, Album, Playlist)
โโโ repository/ # Data repositories (Playlist, Media)
โโโ service/ # Background playback service (Media3)
โโโ ui/ # Compose Screens, Navigation, Themes
โโโ viewmodel/ # Central StateFlow managers (Playback, Analytics)
# Run all Unit Tests
./gradlew test
# Run Instrumentation Tests
./gradlew connectedAndroidTest- Equalizer โ Advanced 10-band equalizer with presets (Q2 2026).
- Lyrics Support โ Local .lrc file parsing and synchronized display (Q3 2026).
- Chromecast Support โ Cast your local media to large screens (Q4 2026).
- DLNA/UPnP streaming from local servers.
- Custom sound profiles per device.
- AI-powered smart playlists based on mood.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'feat: add amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- AndroidX Media3 Team for the robust playback engine.
- Material Design 3 for the beautiful UI components.
- Coil for the efficient image loading library.
Made with โค๏ธ using Jetpack Compose



