2011-12-08 56 views
0

好吧,我得到它的工作。這將基於上下文菜單將該文件保存爲鈴聲,通知或鬧鐘。 (只有鈴聲功能顯示由於節省空間)更新:Soundboard應用程序源代碼

需要幫助:

出於某種原因,一段時間後,沒有播放聲音(約20個左右的印刷機,並且不會再次,直到你回來打出來的應用程序並再次啓動)另外我被告知「/ SD卡/媒體/等」不是「正確的方式」來做到這一點。

如果任何人有關於如何

1.release /暫停/從當按下home鍵停止播放聲音的任何建議,文本是收到,或後退按鈕被按下退出應用程序, etc

and

2.獲得SD卡的正確方法。我會很感激。

MediaPlayer mp1; 
MediaPlayer mp2; 
MediaPlayer mp3; 
MediaPlayer mp4; 
MediaPlayer mp5; 


protected void onDestroy() { 
super.onDestroy(); 
if(mp1 != null){ 
    mp1.release(); 
} 
if(mp2 != null){ 
mp2.release(); 
} 
if(mp3 != null){ 
    mp3.release(); 
} 
if(mp4 != null){ 
mp4.release(); 
} 
if(mp5 != null){ 
    mp5.release(); 
} 
} 

protected void onPause() { 
super.onPause(); 
if(mp1 != null){ 
    mp1.stop(); 
} 
if(mp2 != null){ 
mp2.stop(); 
} 
if(mp3 != null){ 
    mp3.stop(); 
} 
if(mp4 != null){ 
mp4.stop(); 
} 
if(mp5 != null){ 
    mp5.stop(); 
} 
} 
} 

protected void onResume() { 
super.onResume(); 

} 
+0

請勿使用硬編碼值,而應使用變量。創建一個變量,用於跟蹤按下哪個按鈕並將該變量傳遞給用於保存聲音的方法。 – THelper

+0

//按鈕一///////////////////////////////////////////// //////////// Button SoundButton1 =(Button)findViewById(R.id.sound1); registerForContextMenu(SoundButton1); j =「Sound1」; SoundButton1.setOnClickListener(新OnClickListener(){ 公共無效的onClick(視圖v){ mCurrentSound = R.raw.sound1; mSoundManager.playSound(0); \t } }); //按鈕二//////////////////////////////////////////// ///////////// Button SoundButton2 =(Button)findViewById(R.id.sound2); registerForContextMenu(SoundButton2); j =「Sound2」; SoundButton2.setOnClickListener(新OnClickListener(){ 公共無效的onClick(視圖v){ –

+1

公共無效的onClick(視圖v){ mCurrentSound = R.raw.sound2; mSoundManager.playSound(1); \t 和鈴聲功能,這 –

回答

0

答到Q1:添加方法您的活動,並呼籲MediaPlayer'sstop()方法。您還應該添加一個onDestroy方法並呼叫release釋放媒體播放器使用的資源。

回答問題2:看看this post。欲瞭解更多詳情,請閱讀Android開發者信息Data Storage

+0

再次感謝THelper我會很快實施您的建議。謝謝你不要把我當作小菜一樣對待。 –

+0

今天晚上Android神們一定在微笑。我可以發誓我試過 String path = Environment.getExternalStorageDirectory()+「/ media/audio/ringtones /」; 之前,它拋出一個錯誤。也許在我的深夜編碼中,我錯過了標點符號或其他東西。 onPause和onDrestroy也正是我所需要的。您的答案將被正確標記,如果還有其他事情我可以做(不代碼明智,顯然哈哈)讓我知道。 –

+0

好吧,我說得太快了。當我嘗試只是mp2.stop()onPause它的作品,但總共有10個媒體播放器和一些錯誤,當我做mp1.stop()到mp10.stop()我需要一個if(mp1.isplaying()) {mp1.stop()}否則,如果mp2正在播放停止等?節約仍然有效。 –