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();
    }