diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index e411f130b..36f002b22 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -43,7 +43,6 @@ public class Channel { private Drm drm; private boolean selected; - private boolean cache; private Group group; private String url; private Epg data; @@ -196,14 +195,6 @@ public class Channel { this.selected = item.equals(this); } - public boolean isCache() { - return cache; - } - - public void setCache(boolean cache) { - this.cache = cache; - } - public int getLineVisible() { return isOnly() ? View.GONE : View.VISIBLE; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Result.java b/app/src/main/java/com/fongmi/android/tv/bean/Result.java index ab3e53e16..61cf52b4a 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Result.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Result.java @@ -75,8 +75,6 @@ public class Result implements Parcelable { @JsonAdapter(MsgAdapter.class) @SerializedName("msg") private String msg; - @SerializedName("cache") - private boolean cache; public static Result objectFrom(String str) { try { @@ -262,15 +260,6 @@ public class Result implements Parcelable { this.msg = msg; } - public boolean isCache() { - return cache; - } - - public void setCache(boolean cache) { - this.cache = cache; - this.setParse(0); - } - public boolean hasMsg() { return getMsg().length() > 0; } 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 0669c6976..2e3ae0078 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 @@ -3,6 +3,7 @@ package com.fongmi.android.tv.player; import android.graphics.Color; import android.net.Uri; +import androidx.media3.common.C; import androidx.media3.common.MediaItem; import androidx.media3.common.MimeTypes; import androidx.media3.common.PlaybackException; @@ -110,22 +111,22 @@ public class ExoUtil { } public static MediaSource getSource(Result result, int errorCode) { - return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), null, errorCode, result.isCache()); + return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), null, errorCode); } public static MediaSource getSource(Channel channel, int errorCode) { - return getSource(channel.getHeaders(), channel.getUrl(), null, Collections.emptyList(), channel.getDrm(), errorCode, channel.isCache()); + return getSource(channel.getHeaders(), channel.getUrl(), null, Collections.emptyList(), channel.getDrm(), errorCode); } public static MediaSource getSource(Map headers, String url, int errorCode) { - return getSource(headers, url, null, Collections.emptyList(), null, errorCode, false); + return getSource(headers, url, null, Collections.emptyList(), null, errorCode); } - private static MediaSource getSource(Map headers, String url, String format, List subs, Drm drm, int errorCode, boolean cache) { - checkEvictor(cache); + private static MediaSource getSource(Map headers, String url, String format, List subs, Drm drm, int errorCode) { Uri uri = Uri.parse(Util.fixUrl(url)); String mimeType = getMimeType(format, errorCode); if (uri.getUserInfo() != null) headers.put(HttpHeaders.AUTHORIZATION, Util.basic(uri)); + checkEvictor(androidx.media3.common.util.Util.inferContentType(uri) == C.CONTENT_TYPE_OTHER && !MimeTypes.APPLICATION_M3U8.equals(mimeType)); return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(uri, mimeType, subs, drm)); } @@ -172,7 +173,7 @@ public class ExoUtil { private static void checkEvictor(boolean cache) { if (noOpCacheEvictor == null) noOpCacheEvictor = new NoOpCacheEvictor(); - if (usedCacheEvictor == null) usedCacheEvictor = new LeastRecentlyUsedCacheEvictor(200 * 1024 * 1024); + if (usedCacheEvictor == null) usedCacheEvictor = new LeastRecentlyUsedCacheEvictor(256 * 1024 * 1024); CacheEvictor evictor = cache ? usedCacheEvictor : noOpCacheEvictor; if (!evictor.equals(ExoUtil.evictor)) reset(); ExoUtil.evictor = evictor; diff --git a/app/src/main/java/com/fongmi/android/tv/player/Source.java b/app/src/main/java/com/fongmi/android/tv/player/Source.java index 7b8faef65..6c03adc2a 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Source.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Source.java @@ -49,17 +49,14 @@ public class Source { public String fetch(Result result) throws Exception { String url = result.getUrl().v(); Extractor extractor = getExtractor(url); - if (extractor == null) return url; - result.setCache(extractor.useCache()); - return extractor.fetch(url); + if (extractor != null) result.setParse(0); + return extractor == null ? url : extractor.fetch(url); } public String fetch(Channel channel) throws Exception { String url = channel.getCurrent().split("\\$")[0]; Extractor extractor = getExtractor(url); - if (extractor == null) return url; - channel.setCache(extractor.useCache()); - return extractor.fetch(url); + return extractor == null ? url : extractor.fetch(url); } public void stop() { @@ -74,8 +71,6 @@ public class Source { public interface Extractor { - boolean useCache(); - boolean match(String scheme, String host); String fetch(String url) throws Exception; diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java index 4664ae16a..8a7eeed6e 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java @@ -12,11 +12,6 @@ import okhttp3.Headers; public class BiliBili implements Source.Extractor { - @Override - public boolean useCache() { - return false; - } - @Override public boolean match(String scheme, String host) { return "live.bilibili.com".equals(host); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java index d6837c32d..a80497553 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java @@ -22,11 +22,6 @@ public class Force implements Source.Extractor { private final HashSet set = new HashSet<>(); - @Override - public boolean useCache() { - return false; - } - @Override public boolean match(String scheme, String host) { return !scheme.equals("push") && scheme.startsWith("p") || scheme.equals("mitv"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java index a44d9c4c0..b32a04518 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java @@ -13,11 +13,6 @@ public class JianPian implements Source.Extractor { private P2PClass p2p; private String path; - @Override - public boolean useCache() { - return true; - } - @Override public boolean match(String scheme, String host) { return scheme.equals("tvbox-xg") || scheme.equals("jianpian"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java index e9636c9aa..ceecfd0b5 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java @@ -11,11 +11,6 @@ import com.fongmi.android.tv.ui.activity.VideoActivity; public class Push implements Source.Extractor { - @Override - public boolean useCache() { - return false; - } - @Override public boolean match(String scheme, String host) { return scheme.equals("push"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java index 32370b341..bf8268762 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java @@ -15,11 +15,6 @@ public class TVBus implements Source.Extractor, Listener { private String hls; private Core core; - @Override - public boolean useCache() { - return false; - } - @Override public boolean match(String scheme, String host) { return scheme.equals("tvbus"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java index 6b7414151..e6c0526c9 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java @@ -18,11 +18,6 @@ public class Thunder implements Source.Extractor { private GetTaskId taskId; - @Override - public boolean useCache() { - return true; - } - @Override public boolean match(String scheme, String host) { return scheme.equals("magnet") || scheme.equals("ed2k"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java index 2b6a84abf..132a47c89 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java @@ -23,11 +23,6 @@ import okhttp3.Headers; public class Youtube implements Source.Extractor { - @Override - public boolean useCache() { - return false; - } - @Override public boolean match(String scheme, String host) { return host.contains("youtube.com") || host.contains("youtu.be"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java index fa96a97b2..2c22c1025 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java @@ -9,11 +9,6 @@ public class ZLive implements Source.Extractor { private final String BASE = "http://127.0.0.1:6677/stream/"; private boolean init; - @Override - public boolean useCache() { - return false; - } - public void init() { //com.east.android.zlive.ZLive.INSTANCE.OnLiveStart(6677); //init = true;