diff --git a/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java b/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java index 72919f2b..398d7ffa 100644 --- a/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java +++ b/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java @@ -447,6 +447,7 @@ public class VodController extends BaseController { updatePlayerCfgView(); listener.updatePlayerCfg(); listener.replay(false); + listener.setAllowSwitchPlayer(false); hideBottom(); } catch (JSONException e) { e.printStackTrace(); @@ -484,6 +485,7 @@ public class VodController extends BaseController { updatePlayerCfgView(); listener.updatePlayerCfg(); listener.replay(false); + listener.setAllowSwitchPlayer(false); hideBottom(); } } catch (Exception e) { @@ -784,6 +786,8 @@ public class VodController extends BaseController { void selectAudioTrack(); void startPlayUrl(String url, HashMap headers); + + void setAllowSwitchPlayer(boolean isAllow); } public void setListener(VodControlListener listener) { diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java index 31623413..425d0beb 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java @@ -256,6 +256,8 @@ public class PlayActivity extends BaseActivity { public void startPlayUrl(String url, HashMap headers) { goPlayUrl(url, headers); } + @Override + public void setAllowSwitchPlayer(boolean isAllow){allowSwitchPlayer=isAllow;} }); mVideoView.setVideoController(mController); } @@ -873,8 +875,8 @@ public class PlayActivity extends BaseActivity { } private int autoRetryCount = 0; - private long lastRetryTime = 0; // 记录上次调用时间(毫秒) + private boolean allowSwitchPlayer = true; boolean autoRetry() { long currentTime = System.currentTimeMillis(); @@ -882,6 +884,7 @@ public class PlayActivity extends BaseActivity { if (currentTime - lastRetryTime > 60_000) { LOG.i("echo-reset-autoRetryCount"); autoRetryCount = 0; + allowSwitchPlayer = false; } lastRetryTime = currentTime; // 更新上次调用时间 if (loadFoundVideoUrls != null && !loadFoundVideoUrls.isEmpty()) { @@ -897,8 +900,13 @@ public class PlayActivity extends BaseActivity { }else { //第一次重试直接带着原地址继续播放 if(webPlayUrl!=null){ - //切换播放器不占用重试次数 - if(mController.switchPlayer())autoRetryCount++; + if(allowSwitchPlayer){ + //切换播放器不占用重试次数 + if(mController.switchPlayer())autoRetryCount++; + }else { + autoRetryCount++; + allowSwitchPlayer=true; + } stopParse(); initParseLoadFound(); if(mVideoView!=null) mVideoView.release(); diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java index ecfef6bf..5f81d783 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java @@ -274,6 +274,8 @@ public class PlayFragment extends BaseLazyFragment { public void startPlayUrl(String url, HashMap headers) { goPlayUrl(url, headers); } + @Override + public void setAllowSwitchPlayer(boolean isAllow){allowSwitchPlayer=isAllow;} }); mVideoView.setVideoController(mController); } @@ -905,11 +907,14 @@ public class PlayFragment extends BaseLazyFragment { private int autoRetryCount = 0; private long lastRetryTime = 0; // 记录上次调用时间(毫秒) + + private boolean allowSwitchPlayer = true; boolean autoRetry() { long currentTime = System.currentTimeMillis(); if (currentTime - lastRetryTime > 60_000){ LOG.i("echo-reset-autoRetryCount"); autoRetryCount = 0; + allowSwitchPlayer = false; } lastRetryTime = currentTime; // 更新上次调用时间 @@ -925,8 +930,13 @@ public class PlayFragment extends BaseLazyFragment { }else { //第一次重试直接带着原地址继续播放 if(webPlayUrl!=null){ - //切换播放器不占用重试次数 - if(mController.switchPlayer())autoRetryCount++; + if(allowSwitchPlayer){ + //切换播放器不占用重试次数 + if(mController.switchPlayer())autoRetryCount++; + }else { + autoRetryCount++; + allowSwitchPlayer=true; + } stopParse(); initParseLoadFound(); if(mVideoView!=null) mVideoView.release();