//[tvlib](../../index.md)/[org.mjdev.tvlib.ui.components.media](index.md)
# Package-level declarations
## Types
| Name | Summary |
|---|---|
| [ExoPlayerImpl](-exo-player-impl/index.md) | [androidJvm]
@[UnstableApi](https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi.html)
class [ExoPlayerImpl](-exo-player-impl/index.md)(val context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)) : [IMediaPlayer](-i-media-player/index.md), [PlayerNotificationManager.MediaDescriptionAdapter](https://developer.android.com/reference/kotlin/androidx/media3/ui/PlayerNotificationManager.MediaDescriptionAdapter.html), [MediaSession.Callback](https://developer.android.com/reference/kotlin/androidx/media3/session/MediaSession.Callback.html) |
| [IMediaPlayer](-i-media-player/index.md) | [androidJvm]
interface [IMediaPlayer](-i-media-player/index.md) : [Player](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.html) |
| [MediaPlayerContainerDefaults](-media-player-container-defaults/index.md) | [androidJvm]
object [MediaPlayerContainerDefaults](-media-player-container-defaults/index.md) |
| [MediaPlayerState](-media-player-state/index.md) | [androidJvm]
@JsonClass(generateAdapter = true)
class [MediaPlayerState](-media-player-state/index.md)(@Json(name = "context", ignore = true)val context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)? = null, @Json(name = "initialItems")initItems: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[MediaItem](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.html)> = emptyList(), @Json(name = "initialIndex")initItemIndex: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0, @Json(name = "autoPlay")autoPlay: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = true, @Json(name = "seekAtStart")startSeek: [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)? = null, @Json(name = "playNextOnError")val playNextOnError: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = true, @Json(name = "onError", ignore = true)val onError: [MediaPlayerState](-media-player-state/index.md).(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) -> [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = { false }) : [Player.Listener](https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener.html) |
| [NativePlayerImpl](-native-player-impl/index.md) | [androidJvm]
class [NativePlayerImpl](-native-player-impl/index.md)(val context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), mediaPlayer: [MediaPlayer](https://developer.android.com/reference/kotlin/android/media/MediaPlayer.html) = MediaPlayer()) : [IMediaPlayer](-i-media-player/index.md) |
## Functions
| Name | Summary |
|---|---|
| [MediaPlayerContainer](-media-player-container.md) | [androidJvm]
@[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)
fun [MediaPlayerContainer](-media-player-container.md)(modifier: [Modifier](https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html) = Modifier, visible: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = true, enableSwipeGestures: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = true, onError: [MediaPlayerState](-media-player-state/index.md).(error: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) -> [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = { e -> Timber.e(e) false }, state: [MediaPlayerState](-media-player-state/index.md) = rememberMediaPlayerState( onError = onError )) |
| [PlayerControlView](-player-control-view.md) | [androidJvm]
@[Composable](https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html)
fun [PlayerControlView](-player-control-view.md)() |