From 8cd225991002bf7e8f2064bbd8041222d623ee33 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 24 Apr 2023 13:09:56 +0800 Subject: [PATCH] [exo] custom load control --- app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java | 6 ++++++ app/src/main/java/com/fongmi/android/tv/player/Players.java | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 0cd32e19b..41732cffd 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -17,7 +17,9 @@ import androidx.media3.datasource.cache.Cache; import androidx.media3.datasource.cache.CacheDataSource; import androidx.media3.datasource.cache.NoOpCacheEvictor; import androidx.media3.datasource.cache.SimpleCache; +import androidx.media3.exoplayer.DefaultLoadControl; import androidx.media3.exoplayer.DefaultRenderersFactory; +import androidx.media3.exoplayer.LoadControl; import androidx.media3.exoplayer.RenderersFactory; import androidx.media3.exoplayer.source.DefaultMediaSourceFactory; import androidx.media3.exoplayer.source.MediaSource; @@ -50,6 +52,10 @@ public class ExoUtil { private static DatabaseProvider database; private static Cache cache; + public static LoadControl buildLoadControl() { + return new DefaultLoadControl.Builder().setBufferDurationsMs(DefaultLoadControl.DEFAULT_MIN_BUFFER_MS, DefaultLoadControl.DEFAULT_MAX_BUFFER_MS * 2, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS).build(); + } + public static TrackSelector buildTrackSelector() { DefaultTrackSelector trackSelector = new DefaultTrackSelector(App.get()); trackSelector.setParameters(trackSelector.buildUponParameters().setPreferredTextLanguage("zh")); diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 0961d623b..0126fe3cf 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -5,7 +5,6 @@ import androidx.media3.common.PlaybackException; import androidx.media3.common.Player; import androidx.media3.common.TrackSelectionOverride; import androidx.media3.common.util.Util; -import androidx.media3.exoplayer.DefaultLoadControl; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.analytics.AnalyticsListener; import androidx.media3.ui.PlayerView; @@ -74,7 +73,7 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } private void setupExo(PlayerView view) { - exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(new DefaultLoadControl()).setRenderersFactory(ExoUtil.buildRenderersFactory()).setTrackSelector(ExoUtil.buildTrackSelector()).build(); + exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(ExoUtil.buildLoadControl()).setRenderersFactory(ExoUtil.buildRenderersFactory()).setTrackSelector(ExoUtil.buildTrackSelector()).build(); exoPlayer.addAnalyticsListener(this); exoPlayer.setPlayWhenReady(true); exoPlayer.addListener(this);