diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index 93b240dc7..e1cc0aaef 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -474,7 +474,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override public void onSpeedUp() { - if (!mPlayers.isPlaying()) return; + if (!mPlayers.isPlaying() || !mPlayers.canAdjustSpeed()) return; mBinding.control.speed.setText(mPlayers.setSpeed(mPlayers.getSpeed() < 3 ? 3 : 5)); mBinding.widget.speed.startAnimation(ResUtil.getAnim(R.anim.forward)); mBinding.widget.speed.setVisibility(View.VISIBLE); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index d24c4236e..890998b8d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -418,8 +418,10 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private void setPlayerView() { getIjk().setPlayer(mPlayers.getPlayer()); mBinding.control.player.setText(mPlayers.getPlayerText()); + mBinding.control.speed.setEnabled(mPlayers.canAdjustSpeed()); getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); + mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); mBinding.control.decode.setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); } @@ -1028,7 +1030,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List if (Setting.isIncognito() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete(); mBinding.control.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening())); mBinding.control.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding())); - mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); mPlayers.setPlayer(getPlayer()); setScale(getScale()); setPlayerView(); @@ -1423,7 +1424,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List @Override public void onSpeedUp() { - if (!mPlayers.isPlaying()) return; + if (!mPlayers.isPlaying() || !mPlayers.canAdjustSpeed()) return; mBinding.control.speed.setText(mPlayers.setSpeed(mPlayers.getSpeed() < 3 ? 3 : 5)); mBinding.widget.speed.startAnimation(ResUtil.getAnim(R.anim.forward)); mBinding.widget.speed.setVisibility(View.VISIBLE); 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 bf3d939f8..3a7eccde5 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 @@ -240,6 +240,10 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic return 0; } + public boolean canAdjustSpeed() { + return isIjk() || (isExo() && !Setting.isTunnel()); + } + public boolean haveTrack(int type) { if (isExo() && exoPlayer != null) return ExoUtil.haveTrack(exoPlayer.getCurrentTracks(), type); if (isIjk() && ijkPlayer != null) return ijkPlayer.haveTrack(type); @@ -289,7 +293,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic } public String setSpeed(float speed) { - if (exoPlayer != null) exoPlayer.setPlaybackSpeed(speed); + if (exoPlayer != null && !Setting.isTunnel()) exoPlayer.setPlaybackSpeed(speed); if (ijkPlayer != null) ijkPlayer.setSpeed(speed); return getSpeedText(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 8c1d4dd3a..6ea8c1de5 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -385,8 +385,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private void setPlayerView() { getIjk().setPlayer(mPlayers.getPlayer()); mBinding.control.action.player.setText(mPlayers.getPlayerText()); + mBinding.control.action.speed.setEnabled(mPlayers.canAdjustSpeed()); getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); + mBinding.control.action.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); mBinding.control.action.decode.setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.setPlayer(); } @@ -1015,7 +1017,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo if (Setting.isIncognito() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete(); mBinding.control.action.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening())); mBinding.control.action.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding())); - mBinding.control.action.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); mPlayers.setPlayer(getPlayer()); setScale(getScale()); setPlayerView(); @@ -1465,7 +1466,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo @Override public void onSpeedUp() { - if (!mPlayers.isPlaying()) return; + if (!mPlayers.isPlaying() || !mPlayers.canAdjustSpeed()) return; mBinding.control.action.speed.setText(mPlayers.setSpeed(mPlayers.getSpeed() < 3 ? 3 : 5)); mBinding.widget.speed.startAnimation(ResUtil.getAnim(R.anim.forward)); mBinding.widget.speed.setVisibility(View.VISIBLE); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java index d635f846f..9cde0cbbd 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java @@ -88,7 +88,6 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis protected void initView() { if (player == null) dismiss(); if (player == null) return; - binding.speed.setValue(Math.max(player.getSpeed(), 0.5f)); binding.decode.setText(parent.control.action.decode.getText()); binding.ending.setText(parent.control.action.ending.getText()); binding.opening.setText(parent.control.action.opening.getText()); @@ -175,6 +174,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis } public void setPlayer() { + binding.speed.setEnabled(player.canAdjustSpeed()); + binding.speed.setValue(Math.max(player.getSpeed(), 0.5f)); binding.player.setText(parent.control.action.player.getText()); binding.decode.setVisibility(parent.control.action.decode.getVisibility()); }