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 5fccfce12..feab7b720 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 @@ -41,6 +41,7 @@ import com.fongmi.android.tv.bean.Sub; import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Prefers; import com.fongmi.android.tv.utils.Sniffer; +import com.fongmi.android.tv.utils.Utils; import com.github.catvod.net.OkHttp; import com.google.common.net.HttpHeaders; @@ -154,7 +155,7 @@ public class ExoUtil { private static synchronized DataSource.Factory getDataSourceFactory(Map headers) { if (dataSourceFactory == null) dataSourceFactory = buildReadOnlyCacheDataSource(new DefaultDataSource.Factory(App.get(), getHttpDataSourceFactory()), getCache()); - httpDataSourceFactory.setDefaultRequestProperties(headers); + httpDataSourceFactory.setDefaultRequestProperties(Utils.checkHeaders(headers)); return dataSourceFactory; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java b/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java index abb843837..48958e1e9 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java @@ -5,6 +5,7 @@ import android.net.Uri; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.utils.Sniffer; +import com.fongmi.android.tv.utils.Utils; import java.util.Map; @@ -19,6 +20,6 @@ public class IjkUtil { public static MediaSource getSource(Map headers, String url) { Uri uri = Uri.parse(url.trim().replace("\\", "")); if (Sniffer.isAds(uri)) uri = Uri.parse(Server.get().getAddress(true).concat("/m3u8?url=").concat(url)); - return new MediaSource(headers, uri); + return new MediaSource(Utils.checkHeaders(headers), uri); } } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index c94c09cbb..5e43912c7 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -22,7 +22,6 @@ import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Prefers; import com.fongmi.android.tv.utils.ResUtil; import com.github.catvod.crawler.SpiderDebug; -import com.google.common.net.HttpHeaders; import java.util.Formatter; import java.util.List; @@ -326,14 +325,8 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic if (parseJob != null) parseJob.stop(); } - private Map checkHeaders(Map headers) { - if (Prefers.getUa().isEmpty() || headers.containsKey(HttpHeaders.USER_AGENT) || headers.containsKey(HttpHeaders.USER_AGENT.toLowerCase())) return headers; - headers.put(HttpHeaders.USER_AGENT, Prefers.getUa()); - return headers; - } - private void setMediaSource(Result result) { - SpiderDebug.log(errorCode + "," + result.getRealUrl() + "," + checkHeaders(result.getHeaders())); + SpiderDebug.log(errorCode + "," + result.getRealUrl()); if (isIjk()) ijkPlayer.setMediaSource(IjkUtil.getSource(result)); if (isExo()) exoPlayer.setMediaSource(ExoUtil.getSource(result, errorCode)); if (isExo()) exoPlayer.prepare(); @@ -341,7 +334,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic } private void setMediaSource(Map headers, String url) { - SpiderDebug.log(errorCode + "," + url + "," + checkHeaders(headers)); + SpiderDebug.log(errorCode + "," + url); if (isIjk()) ijkPlayer.setMediaSource(IjkUtil.getSource(headers, url)); if (isExo()) exoPlayer.setMediaSource(ExoUtil.getSource(headers, url, errorCode)); if (isExo()) exoPlayer.prepare(); diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java index 0ada0f9db..2980bce96 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java @@ -20,12 +20,14 @@ import androidx.media3.common.util.UriUtil; import com.fongmi.android.tv.App; import com.fongmi.android.tv.server.Server; +import com.google.common.net.HttpHeaders; import com.permissionx.guolindev.PermissionX; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; +import java.util.Map; public class Utils { @@ -91,6 +93,12 @@ public class Utils { return PermissionX.isGranted(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); } + public static Map checkHeaders(Map headers) { + if (Prefers.getUa().isEmpty() || headers.containsKey(HttpHeaders.USER_AGENT) || headers.containsKey(HttpHeaders.USER_AGENT.toLowerCase())) return headers; + headers.put(HttpHeaders.USER_AGENT, Prefers.getUa()); + return headers; + } + public static String checkProxy(String url) { if (url.startsWith("proxy://")) return url.replace("proxy://", Server.get().getAddress("proxy?")); return url;