From 91b00e9548dec1d4c8cf3d65b40df43e6ea36344 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 18 Sep 2022 23:34:23 +0800 Subject: [PATCH] Fix crash --- .../main/java/com/fongmi/android/tv/player/Players.java | 9 +++++++-- .../com/fongmi/android/tv/ui/custom/CustomWebView.java | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) 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 5dca4b863..4bc321455 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 @@ -123,12 +123,13 @@ public class Players implements Player.Listener, ParseTask.Callback { } public void stop() { - this.retry = 0; + retry = 0; exoPlayer.stop(); exoPlayer.clearMediaItems(); } public void release() { + stopParse(); exoPlayer.stop(); exoPlayer.clearMediaItems(); exoPlayer.removeListener(this); @@ -140,13 +141,17 @@ public class Players implements Player.Listener, ParseTask.Callback { if (result.getUrl().isEmpty()) { PlayerEvent.error(R.string.error_play_load); } else if (result.getParse(1) == 1 || result.getJx() == 1) { - if (parseTask != null) parseTask.cancel(); + stopParse(); parseTask = ParseTask.create(this).run(result, useParse); } else { setMediaSource(result); } } + private void stopParse() { + if (parseTask != null) parseTask.cancel(); + } + private void setMediaSource(Result result) { exoPlayer.setMediaSource(ExoUtil.getSource(result)); PlayerEvent.state(0); diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index fd156c975..2c458143e 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -103,7 +103,7 @@ public class CustomWebView extends WebView { for (String key : headers.keySet()) if (keys.contains(key.toLowerCase())) news.put(key, headers.get(key)); handler.removeCallbacks(mTimer); handler.post(() -> { - callback.onParseSuccess(news, url, ""); + if (callback != null) callback.onParseSuccess(news, url, ""); stop(false); }); } @@ -113,5 +113,6 @@ public class CustomWebView extends WebView { loadUrl("about:blank"); handler.removeCallbacks(mTimer); if (error) handler.post(() -> callback.onParseError()); + else callback = null; } }