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 d5190c87e..1a1b16fcf 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 @@ -335,7 +335,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Subscribe(threadMode = ThreadMode.MAIN) public void onErrorEvent(ErrorEvent event) { if (event.getCode() / 1000 == 4 && Players.isHard()) onDecode(); - else if (mPlayers.addRetry() > 2) onError(event); + else if (mPlayers.error()) onError(event); else onReset(); } 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 db89def5c..1576246f8 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 @@ -711,7 +711,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Subscribe(threadMode = ThreadMode.MAIN) public void onErrorEvent(ErrorEvent event) { if (event.getCode() / 1000 == 4 && Players.isHard()) onDecode(); - else if (mPlayers.addRetry() > 2) onError(event); + else if (mPlayers.error()) onError(event); else fetch(); } 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 84dc0a236..8f90cd6fa 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 @@ -1131,7 +1131,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List public void onErrorEvent(ErrorEvent event) { if (isBackground()) return; if (event.getCode() / 1000 == 4 && Players.isHard()) onDecode(); - else if (mPlayers.addRetry() > 2) onError(event); + else if (mPlayers.error()) onError(event); else onRefresh(); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 9c99b6697..ec26c5c7a 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -116,6 +116,10 @@ public class ExoUtil { return null; } + public static int getRetry(int errorCode) { + return errorCode >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && errorCode <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED ? 2 : 1; + } + public static MediaSource getSource(Result result, Sub sub, int errorCode) { return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), sub, null, errorCode); } 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 043bf443c..fe8885b9b 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 @@ -162,9 +162,8 @@ public class Players implements Player.Listener, AnalyticsListener, ParseCallbac this.url = null; } - public int addRetry() { - ++retry; - return retry; + public boolean error() { + return ++retry > ExoUtil.getRetry(error); } public String stringToTime(long time) { 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 308cb52e9..8a5af9d30 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 @@ -770,7 +770,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Subscribe(threadMode = ThreadMode.MAIN) public void onErrorEvent(ErrorEvent event) { if (event.getCode() / 1000 == 4 && Players.isHard()) onDecode(); - else if (mPlayers.addRetry() > 2) onError(event); + else if (mPlayers.error()) onError(event); else fetch(); } 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 26de80d6b..a9180c3d5 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 @@ -1141,7 +1141,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo public void onErrorEvent(ErrorEvent event) { if (isRedirect()) return; if (event.getCode() / 1000 == 4 && Players.isHard()) onDecode(); - else if (mPlayers.addRetry() > 2) onError(event); + else if (mPlayers.error()) onError(event); else onRefresh(); }