implement Media3 ExoPlayer for video playback

- Add Media3 UI, ExoPlayer, and Compose dependencies.
- Implement `PlayerActivity` with landscape orientation for video playback.
- Create `PlayerViewModel` to manage ExoPlayer lifecycle and media loading via Hilt.
- Define `VideoPlayerModule` to provide a configured `ExoPlayer` instance with tunneling and custom load control.
- Extend `JellyfinApiClient` to fetch media sources and video stream URLs.
- Update `ContinueWatchingCard` to launch `PlayerActivity` when the play button is clicked.
- Enforce portrait orientation for the main application and filter duplicate items in `HomePageViewModel`.
This commit is contained in:
2026-01-18 02:09:11 +01:00
parent 6529b109f8
commit fd100816cc
11 changed files with 262 additions and 6 deletions

View File

@@ -67,6 +67,9 @@ dependencies {
implementation(libs.androidx.compose.foundation)
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
implementation(libs.medi3.ui)
implementation(libs.medi3.exoplayer)
implementation(libs.medi3.ui.compose)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)