如何在 Exo Player 2 中添加多个字幕

how to add multiple subtitles in Exo Player 2

我想用 ExoPlayer 2 显示字幕。用户可以选择语言(英语、德语或阿拉伯语)。视频链接为 HLS (.m3u8),字幕为 .str 文件。

我找不到任何示例来执行此操作。

有样品吗?

我作为评论添加到您的原始 post 的 将是您围绕文本轨道选择构建 UI 的方式。然后要真正将曲目添加到您的 mp4 文件(或任何格式),您需要使用 MergingMediaSource。简单版本如下所示:

MediaSource videoSource = new ExtractorMediaSource(videoUri, ...);
MediaSource subtitleSource = new SingleSampleMediaSource(subtitleUri, ...);
// Plays the video with the sideloaded subtitle.
MergingMediaSource mergedSource = new MergingMediaSource(videoSource, subtitleSource);

您可以将多个字幕轨道合并到视频源中。接受许多不同的文件格式。

我从 this blog post - but I believe that same code is also in the ExoPlayer documentation. That code block combined with the sample code that I link to in my other answer 那里得到了那个特定的代码示例应该足以让你得到一些字幕。

请告诉我这是否适合你。