我知道我可以通过以下方式在
ExoPlayer
中显示外部字幕(即存储在单独的文件中):
val subsConf = SubtitleConfiguration
.Builder(subsUri)
.setMimeType(MimeTypes.APPLICATION_SUBRIP)
.setSelectionFlags(C.SELECTION_FLAG_DEFAULT)
.build()
val mediaItem = MediaItem.Builder()
.setUri(videoUri)
.setSubtitleConfigurations(ImmutableList.of(subsConf))
.build()
exoPlayer.setMediaItems(listOf(mediaItem), 0, 0)
exoPlayer.prepare()
但是如果我的
videoUri
指向一个已经嵌入字幕的文件怎么办?如何打开它们?
这可以通过使用“曲目选择”参数来实现。文档可在此处获取。
简而言之,视频、音频和文本(字幕)可以有多个轨道。您可以使用 TrackSelectionParameters 选择首选曲目。您还可以使用 player.getCurrentTracks() 获取曲目列表并将其显示给用户以便能够选择任何曲目。