Quote from the link you shared:
When the playback reaches the end of stream, the playback completes.
If the looping mode was being set to
true
withsetLooping(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 aOnCompletionListener
is registered beforehand viasetOnCompletionListener(OnCompletionListener)
. The invoke of the callback signals that the object is now in thePlaybackCompleted
state.While in the
PlaybackCompleted
state, callingstart()
can restart the playback from the beginning of the audio/video source.
So it enters PlaybackCompletedState and then stop state after playback is completed. If looping is set to true, it remains in started state.