Change sub format

pull/123/head
FongMi 3 years ago
parent a0eb5581ba
commit f34f072cc8
  1. 3
      app/src/main/java/com/fongmi/android/tv/api/PyLoader.java
  2. 8
      app/src/main/java/com/fongmi/android/tv/bean/Result.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/bean/Sub.java
  4. 14
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java

@ -26,8 +26,7 @@ public class PyLoader {
private void init() {
try {
loader = Class.forName("com.undcover.freedom.pyramid.Loader").newInstance();
} catch (Throwable e) {
e.printStackTrace();
} catch (Throwable ignored) {
}
}

@ -51,8 +51,8 @@ public class Result {
private String flag;
@SerializedName("url")
private String url;
@SerializedName("sub")
private List<Sub> sub;
@SerializedName("subs")
private List<Sub> subs;
public static Result fromJson(String str) {
try {
@ -165,8 +165,8 @@ public class Result {
this.url = url;
}
public List<Sub> getSub() {
return sub == null ? Collections.emptyList() : sub;
public List<Sub> getSubs() {
return subs == null ? Collections.emptyList() : subs;
}
public void clear() {

@ -33,7 +33,7 @@ public class Sub {
return TextUtils.isEmpty(format) ? "" : format;
}
public MediaItem.SubtitleConfiguration getExoSub() {
public MediaItem.SubtitleConfiguration getExo() {
return new MediaItem.SubtitleConfiguration.Builder(Uri.parse(getUrl())).setLabel(getName()).setMimeType(getFormat()).setLanguage(getLang()).build();
}
}

@ -67,29 +67,29 @@ public class ExoUtil {
}
public static MediaSource getSource(Result result, int errorCode) {
return getSource(result.getHeaders(), result.getPlayUrl() + result.getUrl(), result.getSub(), errorCode);
return getSource(result.getHeaders(), result.getPlayUrl() + result.getUrl(), result.getSubs(), errorCode);
}
public static MediaSource getSource(Map<String, String> headers, String url, int errorCode) {
return getSource(headers, url, Collections.emptyList(), errorCode);
}
private static MediaSource getSource(Map<String, String> headers, String url, List<Sub> sub, int errorCode) {
return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(url, sub, errorCode));
private static MediaSource getSource(Map<String, String> headers, String url, List<Sub> subs, int errorCode) {
return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(url, subs, errorCode));
}
private static MediaItem getMediaItem(String url, List<Sub> sub, int errorCode) {
private static MediaItem getMediaItem(String url, List<Sub> subs, int errorCode) {
MediaItem.Builder builder = new MediaItem.Builder().setUri(Uri.parse(url.trim()));
if (errorCode == PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED) builder.setMimeType(MimeTypes.APPLICATION_OCTET);
else if (errorCode == PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED) builder.setMimeType(MimeTypes.APPLICATION_M3U8);
if (sub.size() > 0) builder.setSubtitleConfigurations(getSubtitles(sub));
if (subs.size() > 0) builder.setSubtitleConfigurations(getSubtitles(subs));
builder.setAllowChunklessPreparation(Prefers.getDecode() == 1);
return builder.build();
}
private static List<MediaItem.SubtitleConfiguration> getSubtitles(List<Sub> sub) {
private static List<MediaItem.SubtitleConfiguration> getSubtitles(List<Sub> subs) {
List<MediaItem.SubtitleConfiguration> items = new ArrayList<>();
for (Sub item : sub) items.add(item.getExoSub());
for (Sub sub : subs) items.add(sub.getExo());
return items;
}

Loading…
Cancel
Save