NoPlayerTrackInfos createFrom(MediaPlayer mediaPlayer) { MediaPlayer.TrackInfo[] mediaPlayerTrackInfos = mediaPlayer.getTrackInfo(); List<NoPlayerTrackInfo> trackInfos = new ArrayList<>(mediaPlayerTrackInfos.length); for (MediaPlayer.TrackInfo mediaPlayerTrackInfo : mediaPlayerTrackInfos) { trackInfos.add(new NoPlayerTrackInfo(mediaPlayerTrackInfo)); } return new NoPlayerTrackInfos(trackInfos); } }
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 void givenTrackSelectorContainsUnsupportedTracks() { given(AUDIO_TRACK_INFO.type()).willReturn(MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO); given(AUDIO_TRACK_INFO.language()).willReturn(ANY_LANGUAGE); given(VIDEO_TRACK_INFO.type()).willReturn(MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_VIDEO); given(VIDEO_TRACK_INFO.language()).willReturn(ANY_LANGUAGE); given(UNKNOWN_TRACK_INFO.type()).willReturn(MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_UNKNOWN); given(UNKNOWN_TRACK_INFO.language()).willReturn(ANY_LANGUAGE); NoPlayerTrackInfos noPlayerTrackInfos = new NoPlayerTrackInfos( Arrays.asList( VIDEO_TRACK_INFO, UNKNOWN_TRACK_INFO, AUDIO_TRACK_INFO ) ); given(trackInfosFactory.createFrom(mediaPlayer)).willReturn(noPlayerTrackInfos); }