ExoPlayer2 轨道选择:使用 MappingTrackSelector 和 ParametersBuilder
在 ExoPlayer2 中,您可以使用 'MappingTrackSelector' 类来选择要播放的轨道。您可以通过 'DefaultTrackSelector.ParametersBuilder' 对象来配置轨道选择器,例如:
DefaultTrackSelector.ParametersBuilder builder = new DefaultTrackSelector.ParametersBuilder();
builder.setPreferredAudioLanguage('en'); // 设置首选音频语言为英语
builder.setPreferredTextLanguage('en'); // 设置首选字幕语言为英语
builder.setSelectionOverride(0, groupIndex, new DefaultTrackSelector.SelectionOverride(selectedIndex)); // 选择指定轨道
在上面的代码中,'groupIndex' 是轨道组的索引,'selectedIndex' 是要选择的轨道的索引。您可以根据需要多次调用 'setSelectionOverride' 方法来选择多个轨道。
如果您需要在运行时更改选定的轨道,可以使用 'MappingTrackSelector.ParametersBuilder' 对象的 'clearSelectionOverrides' 方法来清除所有当前的轨道选择,然后使用 'setSelectionOverride' 方法来选择新的轨道。
例如,以下代码清除所有当前的轨道选择并选择新的音频轨道:
DefaultTrackSelector.ParametersBuilder builder = trackSelector.buildUponParameters();
builder.clearSelectionOverrides(0); // 清除所有当前的轨道选择
builder.setSelectionOverride(0, audioGroupIndex, new DefaultTrackSelector.SelectionOverride(selectedAudioIndex)); // 选择新的音频轨道
trackSelector.setParameters(builder.build());
原文地址: https://www.cveoy.top/t/topic/jFuQ 著作权归作者所有。请勿转载和采集!