Simple Android app for watching live TV streams (HLS) using Kotlin, Jetpack Compose and ExoPlayer.
- Channel list screen with a modern Compose UI
- Custom video player controls:
- Play / Pause
- “LIVE” jump to live position
- Volume popup slider
- Fullscreen mode (forces landscape)
- Support for HLS (
.m3u8) streams
- Language: Kotlin
- UI: Jetpack Compose, Material 3
- Navigation:
navigation-compose - Video: ExoPlayer + PlayerView
- Architecture: Simple single-activity app with screens split into packages
model/– channel data and repositoryui/screens/–ChannelListScreen,PlayerScreenui/TvStreamsApp.kt– navigation graph
You can easily change the list of TV channels used by the app.
-
Open
model/ChannelRepository.kt. -
Edit the
channelslist and add/removeChannelitems.
Example:val channels: List<Channel> = listOf( Channel( id = "____", name = "____", url = "_____" ) )
Notes
idmust be unique and simple (no spaces), because it is used in the navigation route.nameis the label shown in the channel list UI.urlmust be a valid HLS.m3u8stream URL.- After editing, rebuild and run the app from Android Studio.