Add libass - part 2

pull/589/head
FongMi 1 year ago
parent 559fea9009
commit adab6dedfa
  1. 4
      app/src/main/java/com/fongmi/android/tv/bean/Sub.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java

@ -79,8 +79,8 @@ public class Sub {
this.name = Trans.s2t(name);
}
public MediaItem.SubtitleConfiguration getConfig() {
return new MediaItem.SubtitleConfiguration.Builder(Uri.parse(getUrl())).setLabel(getName()).setMimeType(getFormat()).setSelectionFlags(getFlag()).setLanguage(getLang()).build();
public MediaItem.SubtitleConfiguration getConfig(int id) {
return new MediaItem.SubtitleConfiguration.Builder(Uri.parse(getUrl())).setId(String.valueOf(id)).setLabel(getName()).setMimeType(getFormat()).setSelectionFlags(getFlag()).setLanguage(getLang()).build();
}
@Override

@ -34,6 +34,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Random;
import io.github.anilbeesetti.nextlib.media3ext.ffdecoder.NextRenderersFactory;
import io.github.peerless2012.ass.media.AssHandler;
@ -132,8 +133,9 @@ public class ExoUtil {
}
private static List<MediaItem.SubtitleConfiguration> getSubtitleConfigs(List<Sub> subs) {
int id = 10000 + new Random().nextInt(10000);
List<MediaItem.SubtitleConfiguration> configs = new ArrayList<>();
for (Sub sub : subs) configs.add(sub.getConfig());
for (int i = 0; i < subs.size(); i++) configs.add(subs.get(i).getConfig(id + i));
return configs;
}

@ -39,7 +39,7 @@ public class MediaSourceFactory implements MediaSource.Factory {
private ExtractorsFactory extractorsFactory;
public MediaSourceFactory(AssHandler assHandler, AssSubtitleParserFactory subtitleParserFactory) {
defaultMediaSourceFactory = new DefaultMediaSourceFactory(getDataSourceFactory(), AssPlayerKt.withAssMkvSupport(getExtractorsFactory(), subtitleParserFactory, assHandler));
defaultMediaSourceFactory = new DefaultMediaSourceFactory(getDataSourceFactory(), AssPlayerKt.withAssMkvSupport(getExtractorsFactory(), subtitleParserFactory, assHandler)).setSubtitleParserFactory(subtitleParserFactory);
}
@NonNull

Loading…
Cancel
Save