I guess you have read android-sdk/docs/reference/android/media/MediaPlayer.html , it says:
When the playback reaches the end of stream, the playback completes.
  If the looping mode was being set to truewith setLooping(boolean), the
  MediaPlayer object shall remain in the Started state. If the looping
  mode was set to false , the player engine calls a user supplied
  callback method, OnCompletion.onCompletion(), if a
  OnCompletionListener is registered beforehand via
  setOnCompletionListener(OnCompletionListener). The invoke of the
  callback signals that the object is now in the PlaybackCompleted
  state. While in the PlaybackCompleted state, calling start() can
  restart the playback from the beginning of the audio/video source.
So you may set a new source, prepareAsync then start in completion callback. In this way , you get continuous playback, but it is not seamless.