即使在通过 Stackoverflow 和其他线程上的许多问题之后,我们也无法在 Exoplayer 中找到任何解决字幕问题的方法。
以下是我们用来从本地存储加载视频和字幕的代码片段。
public void setVideo(String absolutePath, String vtt){
player = new SimpleExoPlayer.Builder(this).build();
videoView.setPlayer(player);
// MediaItem mediaItem = MediaItem.fromUri(absolutePath);
MediaItem.Subtitle subtitle = new MediaItem.Subtitle(Uri.parse(vtt),MimeTypes.TEXT_VTT,"en-US");
List<MediaItem.Subtitle> subtitleList = new ArrayList<>();
subtitleList.add(subtitle);
videoView.setShowSubtitleButton(true);
MediaItem mediaItem = new MediaItem.Builder()
.setUri(absolutePath)
.setDrmUuid(C.WIDEVINE_UUID)
.setDrmMultiSession(true)
.setSubtitles(subtitleList)
.build();
player.setMediaItem(mediaItem);
player.setPlayWhenReady(true);
player.prepare();
}
这absolutePath
是视频vtt
的路径,也是 .srt 字幕文件的路径。我们非常感谢任何建议或替代方法来实现这一目标。