2012-04-19 76 views
1

我用下面的代碼在背景中播放的音頻播放:的MediaPlayer在背景中播放的音頻和下一個

String[] Path = new String[] {path1, path2, ...}; 
mMediaPlayer.setDataSource(Path[i]); 
mMediaPlayer.prepare(); 
mMediaPlayer.start(); 
mMediaPlayer.seekTo(0); 

雖然我在背景中播放的第一個路徑[0]。 我想讓它在路徑[0]播放完成後自動播放下一個路徑[1],如何到達它?

回答

21

您應該重寫onCompletionListener這樣,

mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {   
    public void onCompletion(MediaPlayer mp) {   
     Log.i("Completion Listener","Song Complete"); 
     mp.stop(); 
     mp.reset(); 
     mp.setDataSource([nextElement]); 
     mp.prepare(); 
     mp.start(); 
    } 
}); 

如果使用onPreparedListener在你的MediaPlayer,那麼你也CAL使用prepareAsync命令並忽略。開始()。

+0

顯示錯誤'在狀態128中調用attachNewPlayer'。 – brian 2012-04-19 08:07:19

+0

對不起,編輯我的答案..現在檢查。 – 2012-04-19 08:09:27

+0

另一個錯誤「java.lang.IllegalStateException」和「at android.media.MediaPlayer.setDataSource(Native Method)」。 – brian 2012-04-19 08:17:32

相關問題