为什么我的Exoplayer2 中 没有 setSelectedTrack 函数
ExoPlayer 2 中已经不再使用 setSelectedTrack 函数了。相反,你可以使用 TrackSelection 接口来选择要播放的轨道。通过 TrackSelector 能够获得 TrackSelection 对象,然后你可以调用 TrackSelection 的 selectTrack 方法来选择要播放的轨道。例如,以下代码展示如何选择音频轨道:
TrackSelection.Factory trackSelectionFactory =
new AdaptiveTrackSelection.Factory(new DefaultBandwidthMeter());
TrackSelector trackSelector = new DefaultTrackSelector(trackSelectionFactory);
player = ExoPlayerFactory.newSimpleInstance(context, trackSelector);
// 获取音频轨道信息
MappingTrackSelector.MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
if (mappedTrackInfo != null) {
// 获取音频轨道Renderer的索引
int rendererIndex = 1; // 1表示音频轨道Renderer的索引
// 获取音频轨道的TrackGroupArray
TrackGroupArray trackGroups = mappedTrackInfo.getTrackGroups(rendererIndex);
// 获取音频轨道的默认TrackSelection
TrackSelection trackSelection = trackSelector.getParameters().getSelectionOverride(rendererIndex, trackGroups);
if (trackSelection == null) {
// 如果没有选择音频轨道,则选择第一个可用的音频轨道
trackSelection = trackSelectionFactory.createTrackSelection(trackGroups.get(0));
trackSelector.setParameters(trackSelector.buildUponParameters().setSelectionOverride(rendererIndex, trackGroups, trackSelection));
} else {
// 如果已经选择了音频轨道,则取消选择
trackSelector.setParameters(trackSelector.buildUponParameters().clearSelectionOverrides(rendererIndex).build());
}
}
更多关于 ExoPlayer 2 的使用和配置信息,请参考 ExoPlayer 官方文档。
原文地址: https://www.cveoy.top/t/topic/b7ES 著作权归作者所有。请勿转载和采集!