How can I change video audio and subtitle track in Exo player in android

3.3k Views Asked by At

Hy sir this code only for audio selection but can we select video, audio and subtitles also?

https://imbt.ga/iNBFLV8rSQ

public void setAudioTrack(int track) {
    System.out.println("setAudioTrack: "  + track);
    MappingTrackSelector.MappedTrackInfo mappedTrackInfo = Assertions.checkNotNull(trackSelector.getCurrentMappedTrackInfo());
    DefaultTrackSelector.Parameters parameters = trackSelector.getParameters();
    DefaultTrackSelector.ParametersBuilder builder = parameters.buildUpon();
    for (int rendererIndex = 0; rendererIndex < mappedTrackInfo.getRendererCount(); rendererIndex++) {
        int trackType = mappedTrackInfo.getRendererType(rendererIndex);
        if (trackType == C.TRACK_TYPE_AUDIO) {
            builder.clearSelectionOverrides(rendererIndex).setRendererDisabled(rendererIndex, false);
            int groupIndex = track -1;
            int [] tracks = {0}; 
            DefaultTrackSelector.SelectionOverride override = new DefaultTrackSelector.SelectionOverride(groupIndex,tracks);
            builder.setSelectionOverride(rendererIndex, mappedTrackInfo.getTrackGroups(rendererIndex), override);
        }
    }
    trackSelector.setParameters(builder);
    curentAudioTrack = track;
}
1

There are 1 best solutions below

1
On

I have made a github repo with different feature such as changing the video track, you should take a look here

Otherwise you should take a look at the demo in Exoplayer Github, you can copy this file which do exactly what you need and then look at the implementation in this file.