diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 64982eb32..527cba0b2 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -213,7 +213,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void setPlayerView() { getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); - mBinding.control.decode.setVisibility(mPlayers.isExo() ? View.GONE : View.VISIBLE); } private void setVideoView() { @@ -481,8 +480,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void onDecode() { - if (mPlayers.isExo()) return; mBinding.control.decode.setText(mPlayers.toggleDecode()); + if (mPlayers.isExo()) getExo().setPlayer(mPlayers.exo()); getPlayer(false); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 9ac20653f..308649fd6 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -163,7 +163,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void setPlayerView() { getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); - mBinding.control.decode.setVisibility(mPlayers.isExo() ? View.GONE : View.VISIBLE); } private void setVideoView() { @@ -281,8 +280,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void onDecode() { - if (mPlayers.isExo()) return; mBinding.control.decode.setText(mPlayers.toggleDecode()); + if (mPlayers.isExo()) getExo().setPlayer(mPlayers.exo()); getUrl(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index 65aaca110..d331522ed 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -191,7 +191,6 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit CharSequence[] array = ResUtil.getStringArray(R.array.select_player); Prefers.putPlayer(index = index == array.length - 1 ? 0 : ++index); mBinding.playerText.setText(array[index]); - if (Prefers.isExo()) forceHardDecode(); } private void setDecode() { @@ -231,10 +230,4 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit private void setWallRefresh() { WallConfig.get().load(); } - - private void forceHardDecode() { - CharSequence[] array = ResUtil.getStringArray(R.array.select_decode); - mBinding.decodeText.setText(array[1]); - Prefers.putDecode(1); - } } 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 419bee40d..9a9384293 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 @@ -7,7 +7,7 @@ import android.text.TextUtils; import com.fongmi.android.tv.App; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.utils.FileUtil; -import com.google.android.exoplayer2.C; +import com.fongmi.android.tv.utils.Prefers; import com.google.android.exoplayer2.DefaultRenderersFactory; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.PlaybackException; @@ -47,12 +47,12 @@ public class ExoUtil { public static TrackSelector buildTrackSelector() { DefaultTrackSelector trackSelector = new DefaultTrackSelector(App.get()); - trackSelector.setParameters(trackSelector.buildUponParameters().setPreferredTextLanguage("zh").setIgnoredTextSelectionFlags(C.SELECTION_FLAG_DEFAULT | C.SELECTION_FLAG_FORCED)); + trackSelector.setParameters(trackSelector.buildUponParameters().setPreferredTextLanguage("zh")); return trackSelector; } public static RenderersFactory buildRenderersFactory() { - return new DefaultRenderersFactory(App.get()).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON); + return new DefaultRenderersFactory(App.get()).setExtensionRendererMode(Math.abs(Prefers.getDecode() - 2)); } public static CaptionStyleCompat getCaptionStyle() { 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 0a3d5d8ea..97cb8a63e 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 @@ -59,6 +59,7 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } public void setupExo() { + if (exoPlayer != null) releaseExo(); exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(new DefaultLoadControl()).setRenderersFactory(ExoUtil.buildRenderersFactory()).setTrackSelector(ExoUtil.buildTrackSelector()).build(); exoPlayer.addAnalyticsListener(this); exoPlayer.setPlayWhenReady(true); @@ -167,8 +168,9 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } public void setDecode(int decode) { - ijkPlayer.setDecode(decode); Prefers.putDecode(decode); + ijkPlayer.setDecode(decode); + if (isExo()) setupExo(); } public void seekTo(int time) {