因此,基本上MediaPlayer正在播放我想要的音樂。我遇到的問題是試圖讓它釋放onBackPress(),以便1)它停止播放,2)它從內存中釋放它。這是我目前使用的代碼。MediaPlayer流媒體音樂後按下時強制關閉
public class Audio extends Activity {
MediaPlayer mp,lastPlayed;
String song = "http://www.pocketjourney.com/downloads/pj/tutorials/audio.mp3";
int playClick=0;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.audio);
mp = new MediaPlayer();
lastPlayed = new MediaPlayer();
final Button song1 = (Button)findViewById(R.id.song);
song1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(playClick%2==0){
song1.setBackgroundResource(R.drawable.button_pause);
try {
mp.setDataSource(song);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
playClick++;
lastPlayed = mp;
}
else if (playClick%2==1){
song1.setBackgroundResource(R.drawable.button_play);
mp.pause();
playClick=0;
}
}
});
}
public void onBackPressed(){
mp.pause();
mp.release();
finish();
}
}
下面是輸出我從日誌貓得到。
09-02 22:35:05.167: ERROR/ActivityManager(1086): ANR in com.fallacystudios.talent (com.fallacystudios.talent/.Audio)
09-02 22:35:05.167:ERROR/ActivityManager(1086):原因:keyDispatchingTimedOut 09-02 22:35:05.167:ERROR/ActivityManager(1086):負載:1.57/0.74/0.35 09-02 22:35:05.167:錯誤/ ActivityManager(1086):CPU使用率從9503ms到2795ms前: 09-02 22:35:05.167:ERROR/ActivityManager(1086):mediaserver:17%= 15%user + 1%內核/故障:17次 09-02 22:35:05.167:ERROR/ActivityManager(1086):ystudios.talent:17%= 16%用戶+ 0%內核/故障:7次 09-02 22 :35:05.167:ERROR/ActivityManager(1086):system_server:7%= 4%用戶+ 2%內核/故障:5次 09-02 22:35:05.167:ERROR/ActivityManager(1086):qtouch_obp_ts_w:0%= 0%用戶+ 0%內核 09-02 22:35:05.167:錯誤/ ActivityManager(1086):battd:0%= 0%user + 0%kernel/faults:3次要 09-02 22:35:05.167:錯誤/ ActivityManager(1086):dsi:0%= 0%用戶+ 0%內核 09-02 22:35:05.167:ERROR/ActivityManager(1086):omap2_mcspi:0 %= 0%用戶+ 0%內核 09-02 22:35:05.167:錯誤/ ActivityManager(1086):putmethod.latin:0%= 0%用戶+ 0%內核/故障:79次要1主要 09- 02 22:35:05.167:ERROR/ActivityManager(1086):m.android.phone:0%= 0%user + 0%kernel 09-02 22:35:05.167:ERROR/ActivityManager(1086):TOTAL:35 %= 29%user + 5%kernel + 0%irq + 0%softirq 09-02 22:37:19.863:ERROR/Tethering(1086):嘗試移除未知iface(usb0),忽略 09-02 22:48:24.214:ERROR/Tethering(1086):試圖刪除未知的iface(usb0),忽略 09-02 22:49:44.269:ERROR/MediaPlayer(10964):暫停在狀態1中調用
I在onBackPressed中嘗試了它,而沒有停頓()。不知道是否會有幫助,但認爲這是值得一試。它是這樣發生的。我點擊播放音樂......音樂播放就好了......我按下後退按鈕(大多數時候它是第一次播放它應該的),然後我再次播放音樂(工作正常),然後我再按一次,它會延遲片刻,然後強制關閉。即使沒有強制關閉,延遲也會發生。我最終希望有很多按鈕來播放差異歌曲,在這種情況下,我會在下一個發行版中播放最後一個。如果發佈不起作用,或者在繼續前進之前我想找到另一個問題。感謝和任何和所有幫助表示讚賞。我也很感激你花時間閱讀這個漫長的事情。保重。
你有什麼或知道如何製作我需要的線程的任何好例子?謝謝,我會修復onStop部分。 – steven
[進程和線程](http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html) –
謝謝,我很感激。我試圖讓線程工作,當他們不爲我工作時,我只是嘗試了onStop修復,這實際上導致它單獨工作。我會看看你發佈的這個主題,因爲我確信它會很快再次出現,所以感謝你的幫助。 – steven