public void playRadio(RadioStream stream) { setMusicType(MusicType.RADIO); Track track = new Track(); track.audio = stream.stream; track.name = stream.playingnow.track_name; track.album_id = stream.playingnow.album_id; track.artist_id = stream.playingnow.artist_id; track.id = stream.playingnow.track_id; track.album_image = stream.playingnow.track_image; synchronized (mediaPlayers) { if (currentMediaPlayer == null) { currentMediaPlayer = setupPlayer(track); } else if (currentMediaPlayer.getTrack().audio.equals(stream.stream)) { currentMediaPlayer.setTrack(track); } else { for (TrackMediaPlayer player : mediaPlayers) player.stop(); currentMediaPlayer = setupPlayer(track); } if (currentMediaPlayer != null) { currentMediaPlayer.setNext(null); currentMediaPlayer.start(); } } }
public void togglePause() { synchronized (mediaPlayers) { if (currentMediaPlayer != null) { if (currentMediaPlayer.isPaused()) currentMediaPlayer.start(); else currentMediaPlayer.pause(); runOnListener( (MusicPlayerListener l) -> l.onTrackPauseToggle(currentMediaPlayer.getTrack(), currentMediaPlayer.isPaused())); } } }
public void playTrack(Track track, Track nextTrack) { setMusicType(MusicType.TRACK); synchronized (mediaPlayers) { if (currentMediaPlayer == null) { currentMediaPlayer = setupPlayer(track); } else if (currentMediaPlayer.getTrack() != track) { for (TrackMediaPlayer player : mediaPlayers) player.stop(); currentMediaPlayer = setupPlayer(track); } if (currentMediaPlayer != null) { currentMediaPlayer.start(); runOnListener((MusicPlayerListener l) -> l.onTrackStart(track)); if (nextTrack != null) { TrackMediaPlayer nextPlayer = currentMediaPlayer.getNext(); if (nextPlayer == null || nextPlayer.getTrack() != nextTrack) currentMediaPlayer.setNext(setupPlayer(nextTrack)); } else { currentMediaPlayer.setNext(null); } } } }