Why is ExoPlayer initial load time of video is more than 5 seconds?

Viewed 1400

ExoPlayer's initial load time is more than 5 seconds even after using DefaultLoadControl().

private fun initializePlayer() {
    if (player == null) {
        trackSelector = DefaultTrackSelector()
        loadControl = DefaultLoadControl(
                DefaultAllocator(true, 1024),
                1000, // this is it!
                2000,
                1500,
                3000,
                1024,
                true
        )
        player = ExoPlayerFactory.newSimpleInstance(
                DefaultRenderersFactory(this),
                trackSelector,
                loadControl)
        player!!.addListener(componentListener)
        player!!.addVideoDebugListener(componentListener)
        player!!.addAudioDebugListener(componentListener)
        video_view.setPlayer(player)
        player!!.setPlayWhenReady(playWhenReady)
        player!!.seekTo(currentWindow, playbackPosition)
        val uri = Uri.parse(getString(R.string.media_url_mp4))
        val mediaSource = buildMediaSource(uri)
        val mergerMediaSource = MergingMediaSource(mediaSource, buildSubtitleSource(getString(R.string.media_url_subtitle)))
        player!!.prepare(mergerMediaSource, true, false)
    }
}

The video I tried to load is this

1 Answers

Problem here seems like calling

player!!.prepare(mergerMediaSource, true, false)

after

player!!.seekTo(currentWindow, playbackPosition)

The second parameter of player.prepare() is resetPosition which is true by default. That's why, the position is reset to the default.

Try to seek after prepare or pass false to resetPosition

Related