Optimize media3 okhttp

fongmi
jhengazuki 1 month ago
parent 161dfac28a
commit f66f86585c
  1. 2
      app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java
  2. 7
      catvod/src/main/java/com/github/catvod/net/OkHttp.java

@ -98,7 +98,7 @@ public class MediaSourceFactory implements MediaSource.Factory {
} }
private HttpDataSource.Factory getHttpDataSourceFactory() { private HttpDataSource.Factory getHttpDataSourceFactory() {
if (httpDataSourceFactory == null) httpDataSourceFactory = new OkHttpDataSource.Factory(OkHttp.client()); if (httpDataSourceFactory == null) httpDataSourceFactory = new OkHttpDataSource.Factory(OkHttp.player());
return httpDataSourceFactory; return httpDataSourceFactory;
} }
} }

@ -40,6 +40,7 @@ public class OkHttp {
private OkAuthenticator authenticator; private OkAuthenticator authenticator;
private OkProxySelector selector; private OkProxySelector selector;
private OkHttpClient client; private OkHttpClient client;
private OkHttpClient player;
private OkDns dns; private OkDns dns;
private static class Loader { private static class Loader {
@ -63,6 +64,7 @@ public class OkHttp {
public void setDoh(Doh doh) { public void setDoh(Doh doh) {
dns().setDoh(doh.getUrl().isEmpty() ? null : new DnsOverHttps.Builder().client(new OkHttpClient()).url(HttpUrl.get(doh.getUrl())).bootstrapDnsHosts(doh.getHosts()).build()); dns().setDoh(doh.getUrl().isEmpty() ? null : new DnsOverHttps.Builder().client(new OkHttpClient()).url(HttpUrl.get(doh.getUrl())).bootstrapDnsHosts(doh.getHosts()).build());
client = null; client = null;
player = null;
} }
public static OkDns dns() { public static OkDns dns() {
@ -100,6 +102,11 @@ public class OkHttp {
return get().client = getBuilder().build(); return get().client = getBuilder().build();
} }
public static OkHttpClient player() {
if (get().player != null) return get().player;
return get().player = getBuilder().build();
}
public static OkHttpClient client(long timeout) { public static OkHttpClient client(long timeout) {
return client().newBuilder().connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).build(); return client().newBuilder().connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).build();
} }

Loading…
Cancel
Save