我已经制作了一个按钮,当你点击它时,它会发出短促的声音(最大一秒声音)。但是在我连续点击按钮约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();
但是我的声音在播放了一半的时间后停止了......
还有一件事,当我点击时,有没有人知道如何“准备”声音?因为第一次按下按钮时声音会延迟几毫秒。
答案 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