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

IlyaDemidovによって提案された例とChinmoyDebnathのアドバイスに従って、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 に答える