android - 如何使用 Exoplayer 下载视频并添加字幕

标签 android exoplayer exoplayer2.x

我有一个视频播放器应用程序,它使用 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/

相关文章:

Android 应用程序不会在启动时启动

javascript - Android Studio 无法获取调用按钮

android - 使用搜索栏控制 Exoplayer 的音量

java - Exoplayer 线程错误 NoSuchElementExceptionat java.util.ArrayDeque.removeFirst

android - 在 Android Studio 中添加 Assets 文件夹

android - 单击 fab 菜单时使用 fragment (Framelayout)模糊背景

android - Exoplayer Analytics,获取分析的准确方法

java - 如何在 ExoPlayer2 中隐藏控制按钮

android - 以编程方式为 SimpleExoPlayerView 设置自定义 Controller

java - Exoplayer 不显示字幕