public PlayerAudioTrack build() { return new PlayerAudioTrack( groupIndex, formatIndex, trackId, language, mimeType, numberOfChannels, frequency, audioTrackType ); } }
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); }
private List<String> mapAudioTrackToLabel(AudioTracks audioTracks) { List<String> labels = new ArrayList<>(); labels.add("Auto"); for (PlayerAudioTrack audioTrack : audioTracks) { String label = String.format( Locale.UK, AUDIO_TRACK_MESSAGE_FORMAT, audioTrack.trackId(), audioTrack.audioTrackType() ); labels.add(label); } return labels; }
boolean selectAudioTrack(MediaPlayer mediaPlayer, PlayerAudioTrack playerAudioTrack) { if (mediaPlayer == null) { throw new IllegalStateException("You can only call selectAudioTrack() when video is prepared."); } mediaPlayer.selectTrack(playerAudioTrack.groupIndex()); return true; } }
@Test public void whenSelectingAudioTrack_thenMediaPlayerSelectsAudioTrack() { PlayerAudioTrack playerAudioTrack = mock(PlayerAudioTrack.class); given(playerAudioTrack.groupIndex()).willReturn(AUDIO_TRACK_INDEX); trackSelector.selectAudioTrack(mediaPlayer, playerAudioTrack); verify(mediaPlayer).selectTrack(AUDIO_TRACK_INDEX); }
AudioTracks getAudioTracks(MediaPlayer mediaPlayer) { if (mediaPlayer == null) { throw new IllegalStateException("You can only call getAudioTracks() when video is prepared."); } List<PlayerAudioTrack> audioTracks = new ArrayList<>(); NoPlayerTrackInfos trackInfos = trackInfosFactory.createFrom(mediaPlayer); for (int i = 0; i < trackInfos.size(); i++) { NoPlayerTrackInfo trackInfo = trackInfos.get(i); if (trackInfo.type() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) { audioTracks.add( new PlayerAudioTrack( i, NO_FORMAT, String.valueOf(trackInfo.hashCode()), trackInfo.language(), NO_MIME_TYPE, NO_CHANNELS, NO_FREQUENCY, AudioTrackType.MAIN ) ); } } return AudioTracks.from(audioTracks); }
private AudioTracks expectedAudioTrack() { return AudioTracks.from( Collections.singletonList( new PlayerAudioTrack( AUDIO_TRACK_INDEX, NO_FORMAT, String.valueOf(AUDIO_TRACK_INFO.hashCode()), AUDIO_TRACK_INFO.language(), NO_MIME_TYPE, NO_CHANNELS, NO_FREQUENCY, AudioTrackType.MAIN ) ) ); } }
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 AudioTracks expectedSupportedAudioTracks() { return AudioTracks.from( Collections.singletonList( new PlayerAudioTrack( FIRST_GROUP, FIRST_TRACK, AUDIO_FORMAT.id, AUDIO_FORMAT.language, AUDIO_FORMAT.sampleMimeType, AUDIO_FORMAT.channelCount, AUDIO_FORMAT.bitrate, AudioTrackType.from(AUDIO_FORMAT.selectionFlags) ) ) ); } }