pull/171/head
FongMi 3 years ago
parent 72430238cd
commit dd50fabeee
  1. 9
      app/src/main/java/com/fongmi/android/tv/bean/Channel.java
  2. 11
      app/src/main/java/com/fongmi/android/tv/bean/Result.java
  3. 13
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  4. 11
      app/src/main/java/com/fongmi/android/tv/player/Source.java
  5. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java
  6. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/Force.java
  7. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java
  8. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java
  9. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java
  10. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java
  11. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java
  12. 5
      app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.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;
}

@ -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;
}

@ -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<String, String> 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<String, String> headers, String url, String format, List<Sub> subs, Drm drm, int errorCode, boolean cache) {
checkEvictor(cache);
private static MediaSource getSource(Map<String, String> headers, String url, String format, List<Sub> 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;

@ -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;

@ -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);

@ -22,11 +22,6 @@ public class Force implements Source.Extractor {
private final HashSet<String> 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");

@ -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");

@ -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");

@ -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");

@ -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");

@ -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");

@ -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;

Loading…
Cancel
Save