ExoPlayer 切换内嵌字幕 只有 selectTracks 函数 没有 setSelectedTrack 函数
ExoPlayer的selectTracks函数可以用来切换内嵌字幕。该函数可以接收一个参数,用于指定要选择的轨道类型和轨道索引。例如,以下代码可以选择第一个内嵌字幕轨道:
playerView.getPlayer().setPlayWhenReady(false);
MappingTrackSelector.MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
if (mappedTrackInfo != null) {
int rendererIndex = 2; // 2 is the index of the subtitle renderer
int[] tracks = getTracksForRenderer(mappedTrackInfo, rendererIndex);
if (tracks.length > 0) {
playerView.getPlayer().setSelectedTrack(rendererIndex, tracks[0]);
}
}
在这个例子中,我们首先获取当前的轨道信息,并找到内嵌字幕轨道的索引。然后,我们使用getTracksForRenderer函数获取该轨道的所有可用轨道索引,并将第一个轨道设置为选定轨道。
需要注意的是,ExoPlayer没有提供setSelectedTrack函数。相反,我们需要使用setSelectedTrack函数来选择轨道。此函数接受两个参数:轨道类型和轨道索引。我们可以使用getCurrentMappedTrackInfo函数来获取当前的轨道信息,然后使用getTracksForRenderer函数获取特定类型的轨道索引。最后,我们可以使用setSelectedTrack函数来选择要播放的轨道。
原文地址: https://www.cveoy.top/t/topic/b7G2 著作权归作者所有。请勿转载和采集!