У меня тоже была эта проблема.Вероятно, это связано с тем, что объект MediaPlayer существует только внутри метода.
Например:
//ERROR, stops after 5 sec!
public static void playMusic(int id)
{
MediaPlayer mediaPlayer = MediaPlayer.create(context, id);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
Скорее всего, сборщик мусора войдет и очистит MediaPlayer-объект.
Это исправило ошибку для меня:
//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();
}