From d658708a60b5a8176435b82c07ecc526c587ec3d Mon Sep 17 00:00:00 2001 From: FongMi Date: Sat, 16 Nov 2024 23:31:44 +0800 Subject: [PATCH] Fix track bug --- .../java/com/fongmi/android/tv/ui/activity/CastActivity.java | 1 + .../java/com/fongmi/android/tv/ui/activity/LiveActivity.java | 1 + .../com/fongmi/android/tv/ui/activity/VideoActivity.java | 1 + app/src/main/java/com/fongmi/android/tv/player/Players.java | 4 ++++ .../main/java/com/fongmi/android/tv/player/exo/ExoUtil.java | 4 ++++ .../java/com/fongmi/android/tv/ui/activity/LiveActivity.java | 1 + .../com/fongmi/android/tv/ui/activity/VideoActivity.java | 1 + chaquo/src/main/java/com/fongmi/chaquo/Spider.java | 5 ++++- 8 files changed, 17 insertions(+), 1 deletion(-) 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 c877e7a2d..ebd0ee2a3 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 @@ -327,6 +327,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private void onError(ErrorEvent event) { showError(event.getMsg()); + mPlayers.resetTrack(); onStopped(); } 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 a438bf216..d2d637918 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 @@ -752,6 +752,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void onError(ErrorEvent event) { showError(event.getMsg()); + mPlayers.resetTrack(); mPlayers.reset(); mPlayers.stop(); startFlow(); 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 f11790d69..2bc052844 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 @@ -1128,6 +1128,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List Track.delete(getHistoryKey()); showError(event.getMsg()); mClock.setCallback(null); + mPlayers.resetTrack(); mPlayers.reset(); mPlayers.stop(); startFlow(); 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 ac980b7b6..cf827fd06 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 @@ -416,6 +416,10 @@ public class Players implements Player.Listener, ParseCallback { App.removeCallbacks(runnable); } + public void resetTrack() { + if (exoPlayer != null) ExoUtil.resetTrack(exoPlayer); + } + public void setTrack(List tracks) { for (Track track : tracks) setTrack(track); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java index fb5ef2c08..085dde449 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java @@ -86,6 +86,10 @@ public class ExoUtil { setTrackParameters(player, group, trackIndices); } + public static void resetTrack(ExoPlayer player) { + player.setTrackSelectionParameters(player.getTrackSelectionParameters().buildUpon().clearOverrides().build()); + } + public static void setSubtitleView(PlayerView exo) { exo.getSubtitleView().setStyle(getCaptionStyle()); exo.getSubtitleView().setApplyEmbeddedFontSizes(false); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index df8641ce2..1cfb47b48 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -805,6 +805,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List private void onError(ErrorEvent event) { showError(event.getMsg()); + mPlayers.resetTrack(); mPlayers.reset(); mPlayers.stop(); startFlow(); 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 e264c1a7b..29328c7fb 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 @@ -1163,6 +1163,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo Track.delete(getHistoryKey()); showError(event.getMsg()); mClock.setCallback(null); + mPlayers.resetTrack(); mPlayers.reset(); mPlayers.stop(); startFlow(); diff --git a/chaquo/src/main/java/com/fongmi/chaquo/Spider.java b/chaquo/src/main/java/com/fongmi/chaquo/Spider.java index 2c36341b5..a32951068 100644 --- a/chaquo/src/main/java/com/fongmi/chaquo/Spider.java +++ b/chaquo/src/main/java/com/fongmi/chaquo/Spider.java @@ -110,7 +110,10 @@ public class Spider extends com.github.catvod.crawler.Spider { @Override public void destroy() { - app.callAttr("destroy", obj); + try { + app.callAttr("destroy", obj); + } catch (Exception ignored) { + } } private ByteArrayInputStream getStream(PyObject o, boolean base64) {