我正在使用Android Media Player播放和播放我的在線播放列表。Android MediaPlayer暫停流媒體
mMediaPlayer1.setDataSource(streamUrl);
mMediaPlayer1.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer1.prepareAsync();
mMediaPlayer1.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer mp) {
// Play this song and prepare next song
mp.start();
mMediaPlayer2.setDataSource(streamUrl2);
mMediaPlayer2.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer2.prepareAsync();
}
};
對於流暢的體驗,我在完成當前播放的歌曲之前緩衝下一首歌曲。爲此,我會在準備好當前歌曲並開始播放後開始播放下一首歌曲。
所以結果是,它同時播放兩首歌曲。如果互聯網速度很快,那麼它運行良好,但如果速度很慢,那麼當前播放的歌曲也會停滯(因爲它會同時播放兩首歌曲)。 我正在尋找一種方法來暫停背景歌曲的流式處理,在準備好之後,或者是他們準備下一首歌曲的任何方法。請幫忙。
使用TimerTask來管理你當前的播放歌曲並在後臺下載另一個歌曲,並根據歌曲播放的持續時間管理Timer線程 –
嘗試使用Producer-Consumer樣式,mediaPlayer應該緩衝音頻流,所以你可以嘗試和定義2個偵聽器,當緩衝區被填充時,以及當更新緩衝區時,實時流1應該自由緩衝,並且當緩衝區被填充時,通知流2開始工作,當流1回來消耗緩衝器,暫停流2緩衝,並恢復流1緩衝,等等。 – shaydel
@shaydel是他們在媒體播放器中暫停/啓動緩衝的任何方式。 – Neo