连续点击后MediaPlayer强行关闭

时间:2011-04-29 22:22:00

标签: android media-player

我已经制作了一个按钮,当你点击它时,它会发出短促的声音(最大一秒声音)。但是在我连续点击按钮约20次之后,我强行关闭.. 代码是:

final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // Perform action on clicks
        MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.buzzer);
        mp.start();
        }
});

我尝试过使用mp.stop();但是我的声音在播放了一半的时间后停止了......

还有一件事,当我点击时,有没有人知道如何“准备”声音?因为第一次按下按钮时声音会延迟几毫秒。

1 个答案:

答案 0 :(得分:2)

创建一个MediaPlayer成员变量,并在onCreate()中以与在侦听器中相同的方式初始化它。然后在监听器中使用此代码:

if(mPlayer.isPlaying()) {
    mPlayer.stop();
}
mPlayer.start();

然后在mPlayer.release()活动中致电finish()。我的猜测是,由于你的MediaPlayer实例都没有被释放,因此内存不足以供使用。

MediaPlayer的官方文档实际上具有令人难以置信的描述性和帮助性: http://developer.android.com/reference/android/media/MediaPlayer.html