MediaPlayer перестает играть примерно через 5 секунд

В настоящее время я разрабатываю простую игру, и теперь настало время добавить музыку и звуковой эффект. Я пробовал использовать MediaPlayer, как описано здесь: Ошибка Android-плеера Android

Однако у меня есть еще одна проблема: MediaPlayer перестает воспроизводить музыку примерно через 5 секунд. Что, вероятно, вызывает это?

Ответ 1

У меня тоже была эта проблема. Вероятно, это связано с тем, что объект 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();
}