2014-03-30 130 views
1
MediaPlayer mediaPlayer = Common.getMediaPlayer(); 
mediaPlayer.reset(); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(this,Uri.parse(url)); 
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) { 
     mediaPlayer.start(); 
    } 
}); 
mediaPlayer.prepareAsync(); 

這是我用過的代碼。我點擊我彈奏的一些音樂。如果我點擊另一首音樂,它會關閉舊音樂並播放點擊的新音樂。但是我在想,如果我可以做,保持音樂1正在播放,並且一旦播放完畢,播放音樂2.Android媒體播放器播放列表和重置

回答

-1

添加oncomple監聽器,並把所有的音樂在任何數組列表中。繼續重播當前正在播放的內容。當一個完整的玩法播放列表中的下一個。

mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mp) { 
     // play next. 
    } 
1

您可能想要維護一個歌曲列表並註冊一個onCompletionListener以確定每首歌曲何時完成。在onCompletion()回調中,您可以從列表中彈出下一首歌曲並播放它。

由於您最終將擁有多個MediaPlayer偵聽器,因此最好避免匿名內部類帶來的變量訪問麻煩,並讓您的封閉類實現它們。

所以你完成聽者:

mediaPlayer.setOnCompletionListener(this); 

並添加implements OnCompletionListener到類定義,並添加方法如下所示:

@Override 
public void onCompletion(MediaPlayer mp) { 
    // Pop next song from the list, prepare it, and play it. 
}