Reputation: 6912
I use below code to play audio in background:
String[] Path = new String[] {path1, path2, ...};
mMediaPlayer.setDataSource(Path[i]);
mMediaPlayer.prepare();
mMediaPlayer.start();
mMediaPlayer.seekTo(0);
While I play the first one Path[0] in background. I want to make it auto play next one Path[1] after Path[0] play finish, how to arrive it?
Upvotes: 4
Views: 13309
Reputation: 54322
You should override onCompletionListener like this,
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
Log.i("Completion Listener","Song Complete");
mp.stop();
mp.reset();
mp.setDataSource([nextElement]);
mp.prepare();
mp.start();
}
});
If you use a onPreparedListener in your MediaPlayer then you cal also use the prepareAsync command and ignore the .start().
Upvotes: 25
Reputation: 2425
You need to set an OnCompletionListener to your MediaPlayer, in the listener set the source to path2, prepare and play. http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html
Upvotes: 3