SimpleExoPlayer.Builder(this).build() deprecated

Viewed 5984

I'm using Exoplayer in my app and initializing exoplayer as

player = SimpleExoPlayer.Builder(this).build()

But Android Studio is giving me warning as it is deprecated. When I get to the lower version of Exoplayer 2.15.1, then warning goes off. But in latest version 2.16.0, it is giving deprecation warning. How can we initialize exoplayer now with the latest version?

4 Answers

SimpleExoPlayer Deprecated. All functionality has been moved to ExoPlayer instead. ExoPlayer.Builder can be used instead of SimpleExoPlayer.Builder.

Initialize your exoplayer as

player = ExoPlayer.Builder(this).build()

You can check the changes done in library for version 2.16.0 in release notes

SimpleExoPlayer deprecated. You should use ExoPlayer

implementation 'com.google.android.exoplayer:exoplayer:2.18.0'

Example:

private var exoPlayer: ExoPlayer? = null
exoPlayer = ExoPlayer.Builder(this).build()

player intialization.

val exoPlayer = ExoPlayer.Builder(context).build().apply {
    setMediaItem(MediaItem.fromUri("http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"))
}

and PlayerView is now replaced with StyledPlayerView

StyledPlayerView(context).apply {
            player = exoPlayer
            layoutParams = FrameLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT
            )

        }

Compose example below.

@Composable
fun VideoPlayer() {
    val context = LocalContext.current
    val exoPlayer = remember(context) {
        ExoPlayer.Builder(context).build().apply {
            setMediaItem(MediaItem.fromUri("http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"))
        }
    }

    DisposableEffect(key1 = exoPlayer) {
        onDispose {
            exoPlayer.release()
        }
    }

    AndroidView(modifier = Modifier
        .fillMaxWidth()
        .height(214.dp), factory = {
        StyledPlayerView(context).apply {
            player = exoPlayer
            layoutParams = FrameLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT
            )

        }
    })
}
Related