2013-01-05 53 views
0

在我的應用程序,我增加當按鈕被點擊MediaPlayer的好好嘗試一下正常工作

這是管理的聲音

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此消息:媒體播放器錯誤( - 19,0) 。

是什麼意思?

謝謝

+0

可能會對你有所幫助http://stackoverflow.com/questions/11440654/how-do-i-read-microphone-samples-on-一個功能的Android手機/ 11499453#11499453 –

回答

2

請在停止時釋放內存。當您觸摸按鈕再次播放時,您會收到out of memory的錯誤,因爲您是allocating memory every time

0

繼伊利亞·傑米多夫建議的例子,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();   
    } 
} 

現在它似乎工作的方法。我希望我已經解決(在你的幫助下)正確的問題

相關問題