A sample demonstrating how to download and play content offline with OptiView Player (formerly THEOplayer) using the caching API.
The app manages caching tasks (create, pause, resume, remove), tracks download progress with
size overlays, and supports DRM license renewal for protected content. It uses Jetpack Compose
with DefaultUI for the player UI.
OfflineActivity displays downloadable sources and some extra
information about them. PlayerActivity uses Compose with DefaultUI for playback. OfflineDrmLicenseRenewalWorker handles background DRM license renewal via WorkManager.
- Open this repository in Android Studio.
- Select the
offline-playbackrun configuration. - Build and run on a device or emulator.
This project uses THEOplayer from the official Maven repository.
The repository is declared in the project-level settings.gradle.kts:
dependencyResolutionManagement {
repositories {
maven { url = uri("https://maven.theoplayer.com/releases") }
}
}Dependencies are managed through a version catalog and declared
in the module-level build.gradle.kts:
dependencies {
implementation(libs.theoplayer)
implementation(libs.theoplayer.ui)
implementation(libs.work.runtime)
}To play your own streams, add a THEOplayer license from the THEOportal in
common/src/main/res/values/values.xml:
<string name="theoplayer_license">YOUR_LICENSE_HERE</string>The license is picked up automatically via the <meta-data> tag in
AndroidManifest.xml.
Video sources are defined in SourceManager.
This project is licensed under the BSD 3 Clause License - see the LICENSE file for details.