diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Sub.java b/app/src/main/java/com/fongmi/android/tv/bean/Sub.java index e8a6e0e28..cdd427917 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Sub.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Sub.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 diff --git a/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java index f88089ace..910310515 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java @@ -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 getSubtitleConfigs(List subs) { + int id = 10000 + new Random().nextInt(10000); List 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; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java b/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java index fbd9cc449..52a1a23c0 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java +++ b/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java @@ -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