ExoPlayer,如何加载更大的远程音频文件

我正在使用ExoPlayer 2播放远程曲目。 默认情况下,玩家一个接一个地加载曲目(即约20秒,然后在曲目播放时再加20秒)。

由于曲目是从远程服务器加载的,所以如果连接断开,播放器将无法再加载。 有没有办法说ExoPlayer加载音频文件的更大的部分(也是一次完整的轨道)?

我试图看到ExtractorMediaSourceDataSource.FactoryDefaultExtractorsFactory但我没有找到解决我的问题。

 val audioSource = ExtractorMediaSource( Uri.parse(videoUrl), mDataSourceFactory, // DataSource.Factory mExtractor, // DefaultExtractorsFactory null, null ) mExoPlayer.prepare(audioSource) mExoPlayer.playWhenReady = true 

(这是Kotlin,但是Java程序员似乎也可以理解)

我找到了解决方案。 由于我没有找到其他相关的问题,我会回答我的问题(希望将来有人会需要它):

正确的配置对象是在创建ExoPlayer对象时传递给ExoPlayerFactoryLoadControl

 val loadControl = DefaultLoadControl( DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE), 5 * 60 * 1000, // this is it! 10 * 60 * 1000, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS.toLong(), DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS.toLong() ) mExoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl) 

文件在哪里解释。

Interesting Posts