MediaPlayer在大约5秒后停止播放

时间:2011-06-05 08:09:18

标签: android media-player playback

我目前正在开发一款简单的游戏,现在是时候添加音乐和音效了。我尝试使用MediaPlayer,就像这里描述的那样:Android media player bug

但是我还有另外一个问题,MediaPlayer在大约5秒后停止播放音乐。造成这种情况的可能性是什么?

2 个答案:

答案 0 :(得分:57)

我也有这个问题。 这可能是因为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();
}

答案 1 :(得分:0)

您应该创建一个异步代码,以使媒体播放器播放其在后台播放的内容。像这样:

final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.nomarxia);


                Handler mHandler = new Handler();
                mHandler.postDelayed(new Runnable() {
                    public void run() {
                        mp.start();
                    }
                }, mp.getDuration());