我已经看过其他帖子,但我无法弄清楚问题。
所以我正在设计一个计算器,所有数字都有一个onclick方法,所有运算符都有不同。我有一个方法playSound(),其代码是:
public void playSound(){
MediaPlayer mp= MediaPlayer.create(this, R.raw.btn);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
if(mp.isPlaying())
{
mp.stop();
mp.reset();
}
mp.start();
}
我试过发布。任何人都可以让我知道写这篇文章的有效方法。 我在onclick方法中调用了这个方法。但是在大约30次点击后它停止了。我也试图创建全球MediaPlayer,但它仍然停止。我读过媒体播放器实际上是昂贵的,所以我们可以使用soundpool。但即使是soundpool也被弃用了。有什么帮助吗?
答案 0 :(得分:1)
实现onComplition()监听器,在该监听器中,您可以调用释放方法
您创建了多个媒体播放器实例,而不是发布媒体播放器实例,这就是问题的原因 发布后,您的问题将得到解决
答案 1 :(得分:-1)
将MediaPlayer初始化为类属性:
MediaPlayer media = MediaPlayer.create(this,R.raw. btn);
在playSound()方法中:
public void playSound(){
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mp.reset();
mp.start();
}