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 92dff8e8d..092d9738a 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 @@ -93,19 +93,20 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List mR1 = this::hideControl; mR2 = this::setTraffic; setVideoView(); + checkAction(); } @Override @SuppressLint("ClickableViewAccessibility") protected void initEvent() { mBinding.control.seek.setListener(mPlayers); - mBinding.control.text.setOnClickListener(this::onTrack); - mBinding.control.audio.setOnClickListener(this::onTrack); - mBinding.control.video.setOnClickListener(this::onTrack); mBinding.control.text.setAddListener(this::onTextAdd); mBinding.control.text.setSubListener(this::onTextSub); mBinding.control.speed.setAddListener(this::onSpeedAdd); mBinding.control.speed.setSubListener(this::onSpeedSub); + mBinding.control.text.setOnClickListener(this::onTrack); + mBinding.control.audio.setOnClickListener(this::onTrack); + mBinding.control.video.setOnClickListener(this::onTrack); mBinding.control.scale.setOnClickListener(view -> onScale()); mBinding.control.speed.setOnClickListener(view -> onSpeed()); mBinding.control.reset.setOnClickListener(view -> onReset()); @@ -182,11 +183,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List mBinding.control.speed.setText(mPlayers.addSpeed()); } - private boolean onSpeedLong() { - mBinding.control.speed.setText(mPlayers.toggleSpeed()); - return true; - } - private void onSpeedAdd() { mBinding.control.speed.setText(mPlayers.addSpeed(0.25f)); } @@ -195,6 +191,11 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List mBinding.control.speed.setText(mPlayers.subSpeed(0.25f)); } + private boolean onSpeedLong() { + mBinding.control.speed.setText(mPlayers.toggleSpeed()); + return true; + } + private void onReset() { start(); } @@ -386,7 +387,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override public void onServiceConnected(ComponentName name, IBinder service) { ((RendererServiceBinder) service).getService().bindRealPlayer(this); - checkAction(); } @Override 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 00cb03032..090e6c77c 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 @@ -771,12 +771,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mHistory.setSpeed(mPlayers.getSpeed()); } - private boolean onSpeedLong() { - mBinding.control.speed.setText(mPlayers.toggleSpeed()); - mHistory.setSpeed(mPlayers.getSpeed()); - return true; - } - private void onSpeedAdd() { mBinding.control.speed.setText(mPlayers.addSpeed(0.25f)); mHistory.setSpeed(mPlayers.getSpeed()); @@ -787,6 +781,12 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mHistory.setSpeed(mPlayers.getSpeed()); } + private boolean onSpeedLong() { + mBinding.control.speed.setText(mPlayers.toggleSpeed()); + mHistory.setSpeed(mPlayers.getSpeed()); + return true; + } + private void onRefresh() { onReset(false); } diff --git a/app/src/main/java/com/fongmi/android/tv/App.java b/app/src/main/java/com/fongmi/android/tv/App.java index 93bef9e26..b296255b1 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -36,12 +36,13 @@ public class App extends Application { private static App instance; private Activity activity; private final Gson gson; + private Looper looper; private boolean hook; public App() { instance = this; executor = Executors.newFixedThreadPool(Constant.THREAD_POOL); - handler = HandlerCompat.createAsync(Looper.getMainLooper()); + handler = HandlerCompat.createAsync(looper = Looper.getMainLooper()); gson = new Gson(); } @@ -53,6 +54,10 @@ public class App extends Application { return get().gson; } + public static Looper looper() { + return get().looper; + } + public static Activity activity() { return get().activity; } 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 9019944a0..fb0b10933 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 @@ -11,6 +11,7 @@ import android.support.v4.media.session.PlaybackStateCompat; import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.media3.common.AudioAttributes; import androidx.media3.common.PlaybackException; import androidx.media3.common.Player; import androidx.media3.exoplayer.ExoPlayer; @@ -120,7 +121,8 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic } private void setupExo(PlayerView view) { - exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(ExoUtil.buildLoadControl()).setRenderersFactory(ExoUtil.buildRenderersFactory()).setTrackSelector(ExoUtil.buildTrackSelector()).build(); + exoPlayer = new ExoPlayer.Builder(App.get()).setLooper(App.looper()).setLoadControl(ExoUtil.buildLoadControl()).setRenderersFactory(ExoUtil.buildRenderersFactory()).setTrackSelector(ExoUtil.buildTrackSelector()).build(); + exoPlayer.setAudioAttributes(AudioAttributes.DEFAULT, true); exoPlayer.addAnalyticsListener(new EventLogger()); exoPlayer.addAnalyticsListener(this); exoPlayer.setPlayWhenReady(true);