2011-11-26 42 views
0

在我的onCreate方法我檢查,看看媒體播放器是否正在播放,如果是關閉它媒體播放器不會退出

if(mediaplayer.isPlaying()==false) 
    try { 
     playAudio(path); 
    } catch (Exception e) { 
     e.printStackTrace(); 

}else{ 
    mediaplayer.stop(); 
    mediaplayer.reset(); 

} 
    primarySeekBarProgressUpdater(); 

} 

我玩音頻的方法是

private void playAudio(String url) throws Exception{ 



    mediaplayer.setDataSource(url); 
    mediaplayer.prepare(); 
    mediaplayer.start(); 

} 

我也在onCreate方法之前初始化我的媒體播放器。問題是我的媒體播放器不會關閉,而是當用戶點擊列表視圖課程中的新歌曲時,它會創建此類,並在舊的播放器同時播放這兩個媒體播放器。

+0

解釋你的屏幕過渡?從哪個活動到哪個活動?每個活動的佈局。 –

+0

我有一個列表視圖充滿了歌曲,然後它與媒體播放器的相對佈局 –

回答

0

好了,所以我假設你有一個ListActivity以飽滿的歌曲,用戶點擊任何這些,它會移動到一個新Activity播放的歌曲,其中歌曲信息通過Intent通過。

首先,你需要閱讀並記住Activity Lifecyclehttp://developer.android.com/reference/android/app/Activity.html

其次,你的問題,根據生命週期,每次用戶點擊一首歌就行了,然後它會創建一個新的Activity到播放歌曲,這意味着它會創建一個新的MediaPlayer對象。因此,您可以看到許多歌曲與您從列表中選擇歌曲一樣多。 您需要做的是在關閉音樂播放屏幕以返回歌曲列表時處理MediaPlayer對象。

MediaPlayer mPlayer = null;; 

public void onCreate() { 
    // init mediaplayer here 
    mPlayer = ... 
} 


public void onDestroy() { 
    // release object 
    if(mPlayer != null) { 
     mPlayer.stop(); 
     mPlayer.release(); 
     mPlayer = null; 
    } 
} 
+0

但我想媒體播放器繼續播放,直到用戶選擇一首新歌曲....這將停止當用戶嘗試選一首新歌。我怎麼能保持它播放,而用戶尋找一首新歌 –

+0

然後使用'服務',它處理多個'活動'的行動 –

+0

你能解釋我會給你代表和檢查回答..我只是有點困惑關於如何使用服務 –