From 660824c33acbe5931a9e474afc73c890e018c41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E4=BF=8A?= <215613905@qq.com> Date: Tue, 1 Apr 2025 15:44:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=87=8D=E8=AF=95;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/player/controller/VodController.java | 4 ++++ .../github/tvbox/osc/ui/activity/PlayActivity.java | 14 +++++++++++--- .../github/tvbox/osc/ui/fragment/PlayFragment.java | 14 ++++++++++++-- 3 files changed, 27 insertions(+), 5 deletions(-) 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();