在 ExoPlayer2 中,可以使用 TrackSelection 来设置选中的音频/视频轨道。以下是一个示例代码:

// 获取 ExoPlayer 实例
ExoPlayer exoPlayer = ExoPlayerFactory.newSimpleInstance(context);

// 获取 TrackSelector 实例
DefaultTrackSelector trackSelector = new DefaultTrackSelector();

// 设置 TrackSelector 到 ExoPlayer 中
exoPlayer.setTrackSelector(trackSelector);

// 获取当前播放的 TrackGroups(音频/视频轨道组)
TrackGroupArray trackGroups = trackSelector.getCurrentMappedTrackInfo().getTrackGroups(0);

// 获取当前选中的 TrackSelections(音频/视频轨道选择)
TrackSelectionArray trackSelections = trackSelector.getCurrentTrackSelections();

// 选择一个轨道
int groupIndex = 0; // 音频/视频轨道组索引
int trackIndex = 0; // 轨道索引
trackSelector.setParameters(trackSelector.buildUponParameters()
        .setSelectionOverride(groupIndex, trackGroups.get(groupIndex), new FixedTrackSelection.Factory(trackIndex))
);

// 取消选择一个轨道
trackSelector.setParameters(trackSelector.buildUponParameters()
        .setSelectionOverride(groupIndex, trackGroups.get(groupIndex), null)
);

在上述代码中,trackSelector 是 ExoPlayer 的 TrackSelector,可以使用它来选择音频/视频轨道。首先,我们使用 getCurrentMappedTrackInfo() 方法获取当前的 TrackInfo,然后使用 getTrackGroups() 方法获取音频/视频轨道组,使用 getCurrentTrackSelections() 方法获取当前选中的轨道。接下来,我们可以使用 setParameters() 方法来选择或取消选择轨道。在选择轨道时,我们需要指定音频/视频轨道组索引、轨道组中的轨道索引和一个 FixedTrackSelection 对象,它表示选择固定的轨道。在取消选择轨道时,我们可以将 FixedTrackSelection 对象设置为 null

ExoPlayer2 TrackSelection:选择音频/视频轨道

原文地址: https://www.cveoy.top/t/topic/jHnT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录