Video tracks¶
Video tracks selection¶
Keeping track of tracks¶
The current PlaybackSession
manages available and selected audio/subtitle tracks.
public interface IPlaybackSession {
...
List<IVideoTrack> getVideoTracks();
IVideoTrack getSelectedVideoTrack();
...
}
The IPlaybackSessionListener
interface also contains events for when these values change.
public interface IPlaybackSessionListener {
...
void onVideoTracks(List<IVideoTrack> tracks);
void onSelectedVideoTrackChanged(IVideoTrack oldSelectedTrack, IVideoTrack newSelectedTrack);
...
}
These events can be used to initiate and update UI elements.
Note¶
onVideoTracks(...)
can get called at any time. This is dependent on the current stream and the playerImplementation.
Example - Video track¶
Changing selected video track¶
Video track selection can be Adaptive or Fixed:
Adaptive video track selection: use following API and SDK to optimize the video track selection based on network conditions
Read more about Adaptive strategy here : https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html
public void selectVideoTrack(IVideoTrack audioTrack) {
enigmaPlayer.getControls().setMaxVideoTrackDimensions(object);
}
The following API can be used to force the selected video track:
public void selectVideoTrack(IVideoTrack audioTrack) {
enigmaPlayer.getControls().setVideoTrack(object);
}
It will toggle between adaptive strategy and fixed video track and vice-versa.
Table of Contents
Prerequisites
• Video tracks selection (current)