为什么 ExoPlayer 视频的初始加载时间超过 5 秒?

Ara*_*raj 5 android kotlin exoplayer

即使使用 DefaultLoadControl(),ExoPlayer 的初始加载时间也超过 5 秒。

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)
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试加载的视频是这样的

Har*_*eev 1

这里的问题似乎是打电话

player!!.prepare(mergerMediaSource, true, false)
Run Code Online (Sandbox Code Playgroud)

player!!.seekTo(currentWindow, playbackPosition)
Run Code Online (Sandbox Code Playgroud)

第二个参数player.prepare()是resetPosition,默认为true。这就是为什么该位置被重置为默认值。

尝试在prepare后进行seek或将false传递给resetPosition