我有一个视频播放器应用程序,它使用 Exoplayer 库来播放视频,但我希望能够使用 OpenSubtitles 之类的工具动态下载和添加字幕,然后将它们添加到当前播放的视频中。
具有类似功能的视频播放器有 MX Player 和 X Player。
我怎样才能实现类似的功能。非常感谢您的回答!
最佳答案
您可以单独下载字幕或查看downloading media并使用 sideloading subtitles 添加它们或者您可以使用 SingleSampleMediaSource
如下所示:
MediaSource[] mediaSources = new MediaSource[subtitlesCount + videoTrack];
mediaSources[0] = new ProgressiveMediaSource.Factory(new FileDataSource.Factory())
.createMediaSource(MediaItem.fromUri(videoPath));
//add subtitles tracks, and use correct format
SingleSampleMediaSource.Factory singleSampleSourceFactory = new SingleSampleMediaSource.Factory(new DefaultDataSourceFactory(context));
for (int i = 0; i < videoInfo.getSubtitlePaths().size(); i++) {
mediaSources[i + videoTrack] = singleSampleSourceFactory.createMediaSource(
new MediaItem.Subtitle(Uri.parse(subtitlePath), MimeTypes.TEXT_VTT, language), C.TIME_UNSET);
}
//use MergingMediaSource to combine the media sources
MergingMediaSource mergedSource = new MergingMediaSource(mediaSources);
....init player
mPlayer.addMediaSource(mergedSource);
mPlayer.prepare();
关于android - 如何使用 Exoplayer 下载视频并添加字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69337720/