I had this problem too.
It was probably due to having the MediaPlayer-object only existing within a method.
For example:
//ERROR, stops after 5 sec!
public static void playMusic(int id)
{
MediaPlayer mediaPlayer = MediaPlayer.create(context, id);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
It is most likely that the garbage collector will come in and clean away the MediaPlayer-object.
This fixed the error for me:
//mediaPlayer-object will not we cleaned away since someone holds a reference to it!
private static MediaPlayer mediaPlayer;
public static void playMusic(int id)
{
mediaPlayer = MediaPlayer.create(context, id);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
MediaPlayer
related code, and also usesetOnErrorListener(...)
andsetOnCompletionListener(...)
to see maybe error occurs or playback is just completed successfully. – Errick