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 46097135..1547b67c 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 @@ -45,6 +45,7 @@ import com.owen.tvrecyclerview.widget.TvRecyclerView; import com.owen.tvrecyclerview.widget.V7LinearLayoutManager; import org.jetbrains.annotations.NotNull; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -1235,4 +1236,20 @@ public class VodController extends BaseController { return line; } } + + public String firstUrlByArray(String url) + { + try { + JSONArray urlArray = new JSONArray(url); + for (int i = 0; i < urlArray.length(); i++) { + String item = urlArray.getString(i); + if (item.contains("http")) { + url = item; + break; // 找到第一个立即终止循环 + } + } + } catch (JSONException e) { + } + return url; + } } \ No newline at end of file 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 4a6d5307..64766fcf 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 @@ -672,6 +672,9 @@ public class PlayActivity extends BaseActivity { } String flag = info.optString("flag"); String url = info.getString("url"); + if(url.startsWith("[")){ + url=mController.firstUrlByArray(url); + } HashMap headers = null; webUserAgent = null; webHeaderMap = null; diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java index 01f19c40..4959b239 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java @@ -215,9 +215,9 @@ public class GridFragment extends BaseLazyFragment { bundle.putString("id", video.id); bundle.putString("sourceKey", video.sourceKey); bundle.putString("title", video.name); - if(("12".indexOf(getUITag()) != -1) && (video.tag.equals("folder") || video.tag.equals("cover"))){ + if (video.tag != null && (video.tag.equals("folder") || video.tag.equals("cover"))){ focusedView = view; - changeView(video.id,video.tag.equals("folder")); + changeView(video.id,video.tag.equals("cover")); } else{ if(video.id == null || video.id.isEmpty() || video.id.startsWith("msearch:")){ 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 a6e927b2..9b662957 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 @@ -689,6 +689,9 @@ public class PlayFragment extends BaseLazyFragment { } String flag = info.optString("flag"); String url = info.getString("url"); + if(url.startsWith("[")){ + url=mController.firstUrlByArray(url); + } HashMap headers = null; webUserAgent = null; webHeaderMap = null;