I have an array of songs, My app play songs randomly when an activity is open but when the song is finished I would like to play another random song from the array, does anyone can help with it?
public MediaPlayer mediaPlayer;
private int songs[];
songs = new int[] {
R.raw.track1,
R.raw.track2,
R.raw.track3,
R.raw.track4,
R.raw.track5,
R.raw.track6,
R.raw.track7,
R.raw.track8,
R.raw.track9,
R.raw.track10,
R.raw.track11,
R.raw.track12,
R.raw.track13,
R.raw.track14,
R.raw.track15,
R.raw.track16,
R.raw.track17,
};
int randomSong = new Random().nextInt(songs.length);
mediaPlayer = MediaPlayer.create(this, songs[randomSong]);
mediaPlayer.start();
Try this, You need to implement MediaPlayer.OnCompletionListener
interface
in your activity
public class MainActivity extends AppCompatActivity implements MediaPlayer.OnCompletionListener {
private MediaPlayer mediaPlayer;
private int songs[];
private int randomSong;
private Random random = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer.setOnCompletionListener(this);
songs = new int[]{
R.raw.track1,
R.raw.track2,
R.raw.track3,
R.raw.track4,
R.raw.track5,
R.raw.track6,
R.raw.track7,
R.raw.track8,
R.raw.track9,
R.raw.track10,
R.raw.track11,
R.raw.track12,
R.raw.track13,
R.raw.track14,
R.raw.track15,
R.raw.track16,
R.raw.track17,
};
randomSong = getRandom(songs);
mediaPlayer = MediaPlayer.create(this, songs[randomSong]);
mediaPlayer.start();
}
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
randomSong = getRandom(songs);
mediaPlayer = MediaPlayer.create(this, songs[randomSong]);
mediaPlayer.start();
}
public int getRandom(int[] array) {
return random.nextInt(array.length);
}
}