Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在exoplayer 2.11.8版本中通过负载控制_Java_Android_Exoplayer_Exoplayer2.x - Fatal编程技术网

Java 如何在exoplayer 2.11.8版本中通过负载控制

Java 如何在exoplayer 2.11.8版本中通过负载控制,java,android,exoplayer,exoplayer2.x,Java,Android,Exoplayer,Exoplayer2.x,我使用的是exoplayer 2.11.8版本。在这个版本中,他们改变了很多方法。通过搜索他们的文档,我构建了Exoplayer 代码如下: DataSource.Factory dataSourceFactory = new DefaultHttpDataSourceFactory(Util.getUserAgent(this , getApplicationInfo().loadLabel(getPackageM

我使用的是
exoplayer 2.11.8
版本。在这个版本中,他们改变了很多方法。通过搜索他们的文档,我构建了
Exoplayer

代码如下:

DataSource.Factory dataSourceFactory =
                new DefaultHttpDataSourceFactory(Util.getUserAgent(this
                        , getApplicationInfo().loadLabel(getPackageManager()).toString()));
       
LoadControl loadControl = new DefaultLoadControl.Builder()
                .setAllocator(new DefaultAllocator(true, 16))
                .setBufferDurationsMs(MIN_BUFFER_DURATION,
                        MAX_BUFFER_DURATION,
                        MIN_PLAYBACK_START_BUFFER,
                        MIN_PLAYBACK_RESUME_BUFFER)
                .setTargetBufferBytes(-1)
                .setPrioritizeTimeOverSizeThresholds(true).createDefaultLoadControl();
// Create a progressive media source pointing to a stream uri.
MediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
                .createMediaSource(Uri.parse(audio_url));
// Create a player instance.
simpleExoPlayer =  new SimpleExoPlayer.Builder(this).build();
我想将
加载控制
传递给exoplayer。在旧版本中,
负载控制
的传递方式如下:

TrackSelector trackSelector = new DefaultTrackSelector();

DefaultLoadControl loadControl = new DefaultLoadControl.Builder().setBufferDurationsMs(32*1024, 64*1024, 1024, 1024).createDefaultLoadControl();
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl);
在较新版本中,他们更改了创建exoplayer实例的代码,如下所示

simpleExoPlayer =  new SimpleExoPlayer.Builder(this).build();
在这里,我不知道在哪里传递
负载控制。我搜索了他们的
exoplayer
文档。但是没有传递
负载控制的示例。
请帮助我并提供一些解决方案,将
负载控制
传递给
exoplayer

检查以下代码

DefaultRenderersFactory renderersFactory;
    
DefaultLoadControl loadControl = new DefaultLoadControl.Builder().setBufferDurationsMs(25000, 50000, 1500, 2000).createDefaultLoadControl();
                        
@DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode = DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER;

renderersFactory = new DefaultRenderersFactory(this) .setExtensionRendererMode(extensionRendererMode);          

player = new SimpleExoPlayer.Builder(context, renderersFactory)
                                    .setTrackSelector(trackSelector)
                                    .setLoadControl(loadControl)
                                    .build();
检查以下代码

DefaultRenderersFactory renderersFactory;
    
DefaultLoadControl loadControl = new DefaultLoadControl.Builder().setBufferDurationsMs(25000, 50000, 1500, 2000).createDefaultLoadControl();
                        
@DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode = DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER;

renderersFactory = new DefaultRenderersFactory(this) .setExtensionRendererMode(extensionRendererMode);          

player = new SimpleExoPlayer.Builder(context, renderersFactory)
                                    .setTrackSelector(trackSelector)
                                    .setLoadControl(loadControl)
                                    .build();