diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/LivePlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/LivePlayActivity.java index 2685785c..3e0d94f8 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/LivePlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/LivePlayActivity.java @@ -435,8 +435,6 @@ public class LivePlayActivity extends BaseActivity { public void onResponse(String paramString) { ArrayList arrayList = new ArrayList(); - - Log.d("返回的EPG信息", paramString); try { if (paramString.contains("epg_data")) { final JSONArray jSONArray = new JSONObject(paramString).optJSONArray("epg_data"); @@ -445,7 +443,7 @@ public class LivePlayActivity extends BaseActivity { JSONObject jSONObject = jSONArray.getJSONObject(b); Epginfo epgbcinfo = new Epginfo(date,jSONObject.optString("title"), date, jSONObject.optString("start"), jSONObject.optString("end"),b); arrayList.add(epgbcinfo); - Log.d("EPG信息:", day +" "+ jSONObject.optString("start") +" - "+jSONObject.optString("end") + " " +jSONObject.optString("title")); +// Log.d("EPG信息:", day +" "+ jSONObject.optString("start") +" - "+jSONObject.optString("end") + " " +jSONObject.optString("title")); } } 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 7472ce12..169584fc 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 @@ -500,6 +500,7 @@ public class PlayActivity extends BaseActivity { void playUrl(String url, HashMap headers) { LOG.i("playUrl:" + url); + if(autoRetryCount==0)webPlayUrl=url; if(autoRetryCount>1 && url.contains(".m3u8")){ try { String url_encode; @@ -659,6 +660,7 @@ public class PlayActivity extends BaseActivity { HashMap headers = null; webUserAgent = null; webHeaderMap = null; + webPlayUrl = null; if (info.has("header")) { try { JSONObject hds = new JSONObject(info.getString("header")); @@ -849,7 +851,8 @@ public class PlayActivity extends BaseActivity { if (autoRetryCount < 2) { autoRetryCount++; - play(false); +// play(false); + playUrl(webPlayUrl, webHeaderMap); return true; } else { autoRetryCount = 0; @@ -938,7 +941,8 @@ public class PlayActivity extends BaseActivity { private String parseFlag; private String webUrl; private String webUserAgent; - private Map webHeaderMap; + private HashMap webHeaderMap; + private String webPlayUrl; private void initParse(String flag, boolean useParse, String playUrl, final String url) { parseFlag = flag; 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 b3bf33f0..035d3231 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 @@ -95,6 +95,7 @@ import org.xwalk.core.XWalkWebResourceResponse; import java.io.ByteArrayInputStream; import java.io.File; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.HashMap; import java.util.Iterator; @@ -509,9 +510,17 @@ public class PlayFragment extends BaseLazyFragment { } void playUrl(String url, HashMap headers) { + if(autoRetryCount==0)webPlayUrl=url; LOG.i("playUrl:" + url); if(autoRetryCount>0 && url.contains(".m3u8")){ // todo + try { + String url_encode; + url_encode=URLEncoder.encode(url,"UTF-8"); + url = ControlManager.get().getAddress(true) + "proxy?go=bom&url="+ url_encode; + }catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } } if (mActivity == null) return; if (!isAdded()) return; @@ -670,6 +679,7 @@ public class PlayFragment extends BaseLazyFragment { HashMap headers = null; webUserAgent = null; webHeaderMap = null; + webPlayUrl = null; if (info.has("header")) { try { JSONObject hds = new JSONObject(info.getString("header")); @@ -861,15 +871,22 @@ public class PlayFragment extends BaseLazyFragment { } private int autoRetryCount = 0; - + private long lastRetryTime = 0; // 记录上次调用时间(毫秒) boolean autoRetry() { + long currentTime = System.currentTimeMillis(); + // 如果距离上次重试超过 10 秒(10000 毫秒),重置重试次数 + if (currentTime - lastRetryTime > 10_000) { + autoRetryCount = 0; + } + lastRetryTime = currentTime; // 更新上次调用时间 if (loadFoundVideoUrls != null && loadFoundVideoUrls.size() > 0) { autoRetryFromLoadFoundVideoUrls(); return true; } if (autoRetryCount < 1) { autoRetryCount++; - play(false); +// play(false); + playUrl(webPlayUrl, webHeaderMap); return true; } else { autoRetryCount = 0; @@ -960,7 +977,8 @@ public class PlayFragment extends BaseLazyFragment { private String parseFlag; private String webUrl; private String webUserAgent; - private Map webHeaderMap; + private HashMap webHeaderMap; + private String webPlayUrl; private void initParse(String flag, boolean useParse, String playUrl, final String url) { parseFlag = flag;