30次点击后,Mediaplayer在Android中停止

时间:2016-08-27 19:36:40

标签: android android-mediaplayer android-sound

我已经看过其他帖子,但我无法弄清楚问题。

所以我正在设计一个计算器,所有数字都有一个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也被弃用了。有什么帮助吗?

2 个答案:

答案 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();
    }
相关问题