|
|
|
|
@ -12,11 +12,12 @@ import androidx.media3.database.DatabaseProvider; |
|
|
|
|
import androidx.media3.database.StandaloneDatabaseProvider; |
|
|
|
|
import androidx.media3.datasource.DataSource; |
|
|
|
|
import androidx.media3.datasource.DefaultDataSource; |
|
|
|
|
import androidx.media3.datasource.DefaultHttpDataSource; |
|
|
|
|
import androidx.media3.datasource.HttpDataSource; |
|
|
|
|
import androidx.media3.datasource.cache.Cache; |
|
|
|
|
import androidx.media3.datasource.cache.CacheDataSource; |
|
|
|
|
import androidx.media3.datasource.cache.NoOpCacheEvictor; |
|
|
|
|
import androidx.media3.datasource.cache.SimpleCache; |
|
|
|
|
import androidx.media3.datasource.okhttp.OkHttpDataSource; |
|
|
|
|
import androidx.media3.exoplayer.DefaultLoadControl; |
|
|
|
|
import androidx.media3.exoplayer.DefaultRenderersFactory; |
|
|
|
|
import androidx.media3.exoplayer.LoadControl; |
|
|
|
|
@ -39,7 +40,6 @@ 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.github.catvod.net.OkHttp; |
|
|
|
|
import com.google.common.net.HttpHeaders; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
@ -47,11 +47,9 @@ import java.util.Collections; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
import okhttp3.Call; |
|
|
|
|
|
|
|
|
|
public class ExoUtil { |
|
|
|
|
|
|
|
|
|
private static OkHttpDataSource.Factory httpDataSourceFactory; |
|
|
|
|
private static HttpDataSource.Factory httpDataSourceFactory; |
|
|
|
|
private static DataSource.Factory dataSourceFactory; |
|
|
|
|
private static ExtractorsFactory extractorsFactory; |
|
|
|
|
private static DatabaseProvider database; |
|
|
|
|
@ -106,7 +104,6 @@ public class ExoUtil { |
|
|
|
|
|
|
|
|
|
private static List<String> getAdsRegex(Uri uri) { |
|
|
|
|
if (uri.getHost() != null) for (Rule rule : ApiConfig.get().getRules()) for (String host : rule.getHosts()) if (uri.getHost().contains(host)) return rule.getRegex(); |
|
|
|
|
for (Rule rule : ApiConfig.get().getRules()) for (String host : rule.getHosts()) if (host.equals("*")) return rule.getRegex(); |
|
|
|
|
return Collections.emptyList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -121,8 +118,8 @@ public class ExoUtil { |
|
|
|
|
return extractorsFactory; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static synchronized OkHttpDataSource.Factory getHttpDataSourceFactory() { |
|
|
|
|
if (httpDataSourceFactory == null) httpDataSourceFactory = new OkHttpDataSource.Factory((Call.Factory) OkHttp.client()); |
|
|
|
|
private static synchronized HttpDataSource.Factory getHttpDataSourceFactory() { |
|
|
|
|
if (httpDataSourceFactory == null) httpDataSourceFactory = new DefaultHttpDataSource.Factory().setAllowCrossProtocolRedirects(true); |
|
|
|
|
return httpDataSourceFactory; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|