X Player is a modern, premium Android video player built with Jetpack Compose and Media3. It offers a "Cinema" experience with a sleek dark UI, robust local media management, and the unique ability to switch between ExoPlayer and MPV engines for maximum format compatibility.
- Dual Playback Engine: Seamlessly switch between ExoPlayer (Media3) for standard streaming/stability and MPV (libmpv) for advanced format support (e.g., mKv with complex subtitles).
- Premium Dark UI: A strictly enforces dark "Cinema Theme" with a persistent bottom navigation bar.
- Gesture Controls: Intuitive brightness, volume, and seeking gestures.
- Picture-in-Picture (PiP): Automatic PiP support for multitasking.
- Background Playback: Audio continues via foreground services when the app is minimized.
- WebDAV, SMB, & FTP: Stream video directly from your local network servers (NAS, PC).
- Network Stream: Open direct video URLs (HLS, DASH, Progressive).
- Cast Support: Cast local and network content to compatible devices.
- Smart Management: Browse by Folders or All Videos.
- Visuals: Rich video thumbnails powered by Coil.
- Privacy: Hidden folder support.
- Search: integrated media search.
- Includes a standalone Wear OS module for basic playback controls on your wrist.
- Language: Kotlin
- UI: Jetpack Compose
- Material3 Design System
- Navigation Compose
- Architecture: MVVM with Hilt Dependency Injection.
- Media Engines:
- Jetpack Media3 (ExoPlayer)
- MPV-Android (libmpv)
- Network Protocols:
- SMBJ (SMB)
- Commons Net (FTP)
- Sardine (WebDAV)
- Monitoring: Firebase Crashlytics.
- Android Studio Koala or newer.
- JDK 11 (configured in project).
- Android Device/Emulator (API 24+).
- Clone the repository:
git clone https://github.com/chintan992/x-player.git cd x-player - Configuration (Optional):
- Signing: Create a
keystore.propertiesfile in the root directory if you plan to build release versions. - Firebase: Add your
google-services.jsonto theapp/directory to enable Crashlytics.
- Signing: Create a
- Build & Run:
- Open in Android Studio.
- Sync Gradle.
- Select the
appconfiguration and run on your device.
X Player respects your privacy and requests only essential permissions:
- Storage:
READ_MEDIA_VIDEO/READ_EXTERNAL_STORAGEfor library access. - Foreground Service:
FOREGROUND_SERVICErights for background playback. - Internet: Required for Network Streams (SMB/FTP/WebDAV/URL).
This project is open source. GNU GENERAL PUBLIC LICENSE