0

在我的应用程序中,我在单击按钮时添加了声音

这是管理声音的类

public class GestoreSuoni{
MediaPlayer mp; 

    public void playSound(Context context,int sound){
         mp = MediaPlayer.create(context, sound);
         mp.start();        
    }
}

在我的主要活动中,我为所有按钮调用了 playSound 方法

button_name.setOnClickListener(new OnClickListener(){
    public void onClick(View arg0) {
        gestoreSuoni.eseguiSuono(getApplicationContext(),R.raw.tieni_suono);
    }               
});

起初它可以工作,但在我的按钮上点击 20-30 次后,我再也听不到声音了,我从 LogCat 收到这条消息:Mediaplayer 错误(- 19,0)。

是什么意思?

谢谢

4

2 回答 2

2

停止时请释放内存。当您再次触摸按钮进行播放时,out of memory您会收到此错误。allocating memory every time

于 2013-01-05T14:45:38.233 回答
0

按照 Ilya Demidov 建议的示例和 Chinmoy Debnath 的建议,我将这部分代码添加到管理 MediaPlayer 的方法中

public class GestoreSuoni{
MediaPlayer mp; 

    public void playSound(Context context,int sound){

           //new code/////////
       if (mp!=null) {
           mp.release();
            mp = null;
        }
           ///////////////////

         mp = MediaPlayer.create(context, sound);
         mp.start();        
    }
}

现在它似乎工作了。我希望我已经(在你的帮助下)正确地解决了这个问题

于 2013-01-05T16:25:58.113 回答