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; }
public List<PlayerSubtitleTrack> getSubtitleTracks(RendererTypeRequester rendererTypeRequester) { TrackGroupArray trackGroups = trackSelector.trackGroups(TEXT, rendererTypeRequester); List<PlayerSubtitleTrack> subtitleTracks = 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); PlayerSubtitleTrack playerSubtitleTrack = new PlayerSubtitleTrack( groupIndex, formatIndex, format.id, format.language, format.sampleMimeType, format.channelCount, format.bitrate ); subtitleTracks.add(playerSubtitleTrack); } } return subtitleTracks; }
public boolean selectTextTrack(PlayerSubtitleTrack subtitleTrack, RendererTypeRequester rendererTypeRequester) { TrackGroupArray trackGroups = trackSelector.trackGroups(TEXT, rendererTypeRequester); DefaultTrackSelector.SelectionOverride selectionOverride = new DefaultTrackSelector.SelectionOverride( subtitleTrack.groupIndex(), subtitleTrack.formatIndex() ); return trackSelector.setSelectionOverride(TEXT, rendererTypeRequester, trackGroups, selectionOverride); }
public boolean selectAudioTrack(PlayerAudioTrack audioTrack, RendererTypeRequester rendererTypeRequester) { TrackGroupArray trackGroups = trackSelector.trackGroups(AUDIO, rendererTypeRequester); DefaultTrackSelector.SelectionOverride selectionOverride = new DefaultTrackSelector.SelectionOverride( audioTrack.groupIndex(), audioTrack.formatIndex() ); return trackSelector.setSelectionOverride(AUDIO, rendererTypeRequester, trackGroups, selectionOverride); }
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); }
public AudioTracks getAudioTracks(RendererTypeRequester rendererTypeRequester) { TrackGroupArray trackGroups = trackSelector.trackGroups(AUDIO, rendererTypeRequester); List<PlayerAudioTrack> audioTracks = new ArrayList<>(); for (int groupIndex = 0; groupIndex < trackGroups.length; groupIndex++) { if (trackSelector.supportsTrackSwitching(AUDIO, rendererTypeRequester, trackGroups, groupIndex)) { TrackGroup trackGroup = trackGroups.get(groupIndex); for (int formatIndex = 0; formatIndex < trackGroup.length; formatIndex++) { Format format = trackGroup.getFormat(formatIndex); PlayerAudioTrack playerAudioTrack = new PlayerAudioTrack( groupIndex, formatIndex, format.id, format.language, format.sampleMimeType, format.channelCount, format.bitrate, AudioTrackType.from(format.selectionFlags) ); audioTracks.add(playerAudioTrack); } } } return AudioTracks.from(audioTracks); }
private void givenTrackSelectorContainsTracks() { TrackGroupArray trackGroups = new TrackGroupArray( new TrackGroup(VIDEO_FORMAT, ADDITIONAL_VIDEO_FORMAT) ); given(trackSelector.trackGroups(TrackType.VIDEO, rendererTypeRequester)).willReturn(trackGroups); }
private void givenTrackSelectorContainsUnsupportedTracks() { TrackGroupArray trackGroups = new TrackGroupArray( new TrackGroup(AUDIO_FORMAT), new TrackGroup( AudioFormatFixture.anAudioFormat().build(), AudioFormatFixture.anAudioFormat().build(), AudioFormatFixture.anAudioFormat().build() ) ); given(trackSelector.trackGroups(TrackType.AUDIO, rendererTypeRequester)).willReturn(trackGroups); given(trackSelector.supportsTrackSwitching(eq(TrackType.AUDIO), any(RendererTypeRequester.class), any(TrackGroupArray.class), anyInt())) .willReturn(true) .willReturn(false); }
private TrackGroupArray givenTrackSelectorContainsTracks() { TrackGroupArray trackGroups = new TrackGroupArray( new TrackGroup(AudioFormatFixture.anAudioFormat().build()), new TrackGroup( AudioFormatFixture.anAudioFormat().build(), AudioFormatFixture.anAudioFormat().build(), AudioFormatFixture.anAudioFormat().build() ) ); given(trackSelector.trackGroups(TrackType.AUDIO, rendererTypeRequester)).willReturn(trackGroups); return trackGroups; }