Mediaplayer 在点击 30 次后停止在 android
Mediaplayer stops in android after 30 clicks
我看过其他关于此的帖子,但我无法找出问题所在。
所以我正在设计一个计算器,所有数字都有一个 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 global 但它仍然停止。我读过 mediaplayer 实际上很贵,所以我们可以使用 soundpool。但即使是 soundpool 也被弃用了。有帮助吗?
实现 onComplition() Listener ,在那个监听器中你可以调用 release 方法
您创建了多个 mediaplayer 实例,但没有释放 mediaplayer 实例,这就是出现问题的原因
在您发布 call 后,您的问题将得到解决
将 MediaPlayer 初始化为 class 属性:
MediaPlayer media = MediaPlayer.create(this,R.raw. btn);
在 playSound() 方法中:
public void playSound(){
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mp.reset();
mp.start();
}
我看过其他关于此的帖子,但我无法找出问题所在。
所以我正在设计一个计算器,所有数字都有一个 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 global 但它仍然停止。我读过 mediaplayer 实际上很贵,所以我们可以使用 soundpool。但即使是 soundpool 也被弃用了。有帮助吗?
实现 onComplition() Listener ,在那个监听器中你可以调用 release 方法
您创建了多个 mediaplayer 实例,但没有释放 mediaplayer 实例,这就是出现问题的原因 在您发布 call 后,您的问题将得到解决
将 MediaPlayer 初始化为 class 属性:
MediaPlayer media = MediaPlayer.create(this,R.raw. btn);
在 playSound() 方法中:
public void playSound(){
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mp.reset();
mp.start();
}