I use below code to play audio in background:
String[] Path = new String[] {path1, path2, ...};
mMediaPlayer.setDataSource(Path[i]);
mMediaPlayer.prepare();
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().
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