public PlayerVideoTrack build() { return new PlayerVideoTrack(groupIndex, formatIndex, id, contentType, width, height, fps, bitrate); } }
private List<String> mapVideoTrackToLabel(List<PlayerVideoTrack> videoTracks) { List<String> labels = new ArrayList<>(); labels.add("Auto"); for (PlayerVideoTrack videoTrack : videoTracks) { String message = String.format(VIDEO_TRACK_MESSAGE_FORMAT, videoTrack.id(), videoTrack.height()); labels.add(message); } return labels; }
public boolean selectVideoTrack(PlayerVideoTrack videoTrack, RendererTypeRequester rendererTypeRequester) { TrackGroupArray trackGroups = trackSelector.trackGroups(VIDEO, rendererTypeRequester); DefaultTrackSelector.SelectionOverride selectionOverride = new DefaultTrackSelector.SelectionOverride( videoTrack.groupIndex(), videoTrack.formatIndex() ); return trackSelector.setSelectionOverride(VIDEO, rendererTypeRequester, trackGroups, selectionOverride); }
private Optional<PlayerVideoTrack> findSelectedVideoTrack(Format selectedVideoFormat, List<PlayerVideoTrack> videoTracks) { for (PlayerVideoTrack videoTrack : videoTracks) { if (videoTrack.id().equals(selectedVideoFormat.id)) { return Optional.of(videoTrack); } } return Optional.absent(); }
public List<PlayerVideoTrack> getVideoTracks(RendererTypeRequester rendererTypeRequester, ContentType contentType) { TrackGroupArray trackGroups = trackSelector.trackGroups(VIDEO, rendererTypeRequester); List<PlayerVideoTrack> videoTracks = new ArrayList<>(); for (int groupIndex = 0; groupIndex < trackGroups.length; groupIndex++) { TrackGroup trackGroup = trackGroups.get(groupIndex); for (int formatIndex = 0; formatIndex < trackGroup.length; formatIndex++) { Format format = trackGroup.getFormat(formatIndex); PlayerVideoTrack playerVideoTrack = new PlayerVideoTrack( groupIndex, formatIndex, format.id, contentType, format.width, format.height, (int) format.frameRate, format.bitrate ); videoTracks.add(playerVideoTrack); } } return videoTracks; }