From 3b89e9850def5a280a3f28b2c9d6e643de96e8bd Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 12 Sep 2022 18:47:41 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/activity/HomeActivity.java | 5 +- .../com/fongmi/android/tv/player/Players.java | 48 ++++++++----------- 2 files changed, 22 insertions(+), 31 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index c1ace4c9c..f04b5c65d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -276,13 +276,12 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen Notify.show(R.string.app_exit); mHandler.postDelayed(() -> mConfirmExit = false, 1000); } else { + release(); super.onBackPressed(); } } - @Override - protected void onDestroy() { - super.onDestroy(); + private void release() { Server.get().stop(); Clock.get().release(); Players.get().release(); 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 9c49f391f..1569e08c7 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 @@ -74,18 +74,18 @@ public class Players implements Player.Listener, ParseTask.Callback { } public String getSpeed() { - return String.format(Locale.getDefault(), "%.2f", exoPlayer.getPlaybackParameters().speed); + return String.format(Locale.getDefault(), "%.2f", exo().getPlaybackParameters().speed); } public void addSpeed() { - float speed = exoPlayer.getPlaybackParameters().speed; + float speed = exo().getPlaybackParameters().speed; float addon = speed >= 2 ? 1f : 0.25f; speed = speed >= 5 ? 0.5f : speed + addon; - exoPlayer.setPlaybackSpeed(speed); + exo().setPlaybackSpeed(speed); } public void resetSpeed() { - exoPlayer.setPlaybackSpeed(1f); + exo().setPlaybackSpeed(1f); } public String getTime(long time) { @@ -100,27 +100,27 @@ public class Players implements Player.Listener, ParseTask.Callback { } public long getCurrentPosition() { - return exoPlayer.getCurrentPosition(); + return exo().getCurrentPosition(); } public long getDuration() { - return exoPlayer.getDuration(); + return exo().getDuration(); } public void seekTo(int time) { - exoPlayer.seekTo(getCurrentPosition() + time); + exo().seekTo(getCurrentPosition() + time); } public void seekTo(long time) { - exoPlayer.seekTo(time); + exo().seekTo(time); } public boolean isPlaying() { - return exoPlayer.isPlaying(); + return exo().isPlaying(); } public boolean isIdle() { - return exoPlayer.getPlaybackState() == Player.STATE_IDLE; + return exo().getPlaybackState() == Player.STATE_IDLE; } public boolean canNext() { @@ -139,39 +139,31 @@ public class Players implements Player.Listener, ParseTask.Callback { } private void setMediaSource(Result result) { - exoPlayer.setMediaSource(ExoUtil.getSource(result)); + exo().setMediaSource(ExoUtil.getSource(result)); PlayerEvent.state(0); - exoPlayer.prepare(); + exo().prepare(); } private void setMediaSource(Map headers, String url) { - exoPlayer.setMediaSource(ExoUtil.getSource(headers, url)); + exo().setMediaSource(ExoUtil.getSource(headers, url)); PlayerEvent.state(0); - exoPlayer.prepare(); + exo().prepare(); } public void pause() { - if (exoPlayer != null) { - exoPlayer.pause(); - } + exo().pause(); } public void stop() { this.retry = 0; - if (exoPlayer != null) { - exoPlayer.stop(); - exoPlayer.clearMediaItems(); - exoPlayer.setPlaybackSpeed(1.0f); - } - if (webView != null) { - webView.stop(false); - } + exo().stop(); + exo().clearMediaItems(); + exo().setPlaybackSpeed(1.0f); + if (webView != null) webView.stop(false); } public void play() { - if (exoPlayer != null) { - exoPlayer.play(); - } + exo().play(); } public void release() {