static AudioTrackType from(int selectionFlag) { for (AudioTrackType audioTrackType : AudioTrackType.values()) { if (audioTrackType.selectionFlag == selectionFlag) { return audioTrackType; } } return UNKNOWN; } }
public static ExoPlayerTrackSelector newInstance(DefaultTrackSelector trackSelector) { RendererTrackIndexExtractor rendererTrackIndexExtractor = new RendererTrackIndexExtractor(); return new ExoPlayerTrackSelector(trackSelector, rendererTrackIndexExtractor); }
Optional<PlayerVideoTrack> getSelectedVideoTrack(SimpleExoPlayer exoPlayer, RendererTypeRequester rendererTypeRequester, ContentType contentType) { return videoTrackSelector.getSelectedVideoTrack(exoPlayer, rendererTypeRequester, contentType); }
TrackGroupArray trackGroups(TrackType trackType, RendererTypeRequester rendererTypeRequester) { Optional<Integer> audioRendererIndex = rendererTrackIndexExtractor.extract(trackType, mappedTrackInfoLength(), rendererTypeRequester); return audioRendererIndex.isAbsent() ? TrackGroupArray.EMPTY : trackInfo().getTrackGroups(audioRendererIndex.get()); }
boolean supportsTrackSwitching(TrackType trackType, RendererTypeRequester rendererTypeRequester, TrackGroupArray trackGroups, int groupIndex) { Optional<Integer> audioRendererIndex = rendererTrackIndexExtractor.extract(trackType, mappedTrackInfoLength(), rendererTypeRequester); return audioRendererIndex.isPresent() && trackGroups.get(groupIndex).length > 0 && trackInfo().getAdaptiveSupport(audioRendererIndex.get(), groupIndex, false) != RendererCapabilities.ADAPTIVE_NOT_SUPPORTED; } }
@Test public void givenTrackSelectorContainsUnsupportedTracks_whenGettingAudioTracks_thenReturnsOnlySupportedTracks() { givenTrackSelectorContainsUnsupportedTracks(); AudioTracks actualAudioTracks = exoPlayerAudioTrackSelector.getAudioTracks(rendererTypeRequester); assertThat(actualAudioTracks).isEqualTo(expectedSupportedAudioTracks()); }
AudioTracks getAudioTracks(RendererTypeRequester rendererTypeRequester) { return audioTrackSelector.getAudioTracks(rendererTypeRequester); }
boolean selectAudioTrack(PlayerAudioTrack audioTrack, RendererTypeRequester rendererTypeRequester) { return audioTrackSelector.selectAudioTrack(audioTrack, rendererTypeRequester); }
boolean selectVideoTrack(PlayerVideoTrack videoTrack, RendererTypeRequester rendererTypeRequester) { return videoTrackSelector.selectVideoTrack(videoTrack, rendererTypeRequester); }
List<PlayerVideoTrack> getVideoTracks(RendererTypeRequester rendererTypeRequester, ContentType contentType) { return videoTrackSelector.getVideoTracks(rendererTypeRequester, contentType); }
public boolean clearAudioTrack(RendererTypeRequester rendererTypeRequester) { return trackSelector.clearSelectionOverrideFor(AUDIO, rendererTypeRequester); } }
boolean clearSubtitleTrack(RendererTypeRequester rendererTypeRequester) { return subtitleTrackSelector.clearSubtitleTrack(rendererTypeRequester); } }
boolean selectTextTrack(PlayerSubtitleTrack subtitleTrack, RendererTypeRequester rendererTypeRequester) { return subtitleTrackSelector.selectTextTrack(subtitleTrack, rendererTypeRequester); }
boolean clearAudioTrack(RendererTypeRequester rendererTypeRequester) { return audioTrackSelector.clearAudioTrack(rendererTypeRequester); }
boolean clearVideoTrack(RendererTypeRequester rendererTypeRequester) { return videoTrackSelector.clearVideoTrack(rendererTypeRequester); }
List<PlayerSubtitleTrack> getSubtitleTracks(RendererTypeRequester rendererTypeRequester) { return subtitleTrackSelector.getSubtitleTracks(rendererTypeRequester); }
static AudioFormatFixture anAudioFormat() { return new AudioFormatFixture(); }
public static VideoFormatFixture aVideoFormat() { return new VideoFormatFixture(); }
public boolean clearSubtitleTrack(RendererTypeRequester rendererTypeRequester) { return trackSelector.clearSelectionOverrideFor(TEXT, rendererTypeRequester); } }
public boolean clearVideoTrack(RendererTypeRequester rendererTypeRequester) { return trackSelector.clearSelectionOverrideFor(VIDEO, rendererTypeRequester); } }