2015-05-03 71 views
0

我試圖播放下一首歌曲mediaPlayer.setOnCompletionListener(),但它只播放一首下一首歌曲,之後該歌曲結束mediaplayer stop。如何讓mediaplayer始終播放?Android meediaplayer自動播放下一首歌曲?

Intent i = getIntent(); 
    Bundle b = i.getExtras(); 
    mySongs = (ArrayList)b.getParcelableArrayList("songList"); 
    position = b.getInt("pos",0); 
    u = Uri.parse(mySongs.get(position).toString()); 
    mediaPlayer = MediaPlayer.create(getApplicationContext(), u); 
    mediaPlayer.start(); 

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
        mediaPlayer.stop(); 
       try { 
        mediaPlayer.prepare(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       u = Uri.parse(mySongs.get(position + 1).toString()); 
        mediaPlayer = MediaPlayer.create(getApplicationContext(), u); 
        mediaPlayer.start(); 
      } 
     }); 

回答

0

您不需要等到onCompletion。只需一次創建玩家和使用setNextMediaPlayer隊列第二個

u1 = Uri.parse(mySongs.get(position).toString()); 
u2 = Uri.parse(mySongs.get(position + 1).toString()); 
mediaPlayer = MediaPlayer.create(getApplicationContext(), u1); 
mediaPlayerNext = MediaPlayer.create(getApplicationContext(), u2); 
mediaPlayer.setNextMediaPlayer(mediaPlayerNext); 

你的第二首歌曲後還沒有收到onCompletion因爲你給不具備監聽一個新玩家參考替換MediaPlayer的價值組。將mediaPlayer.setOnCompletionListener()添加到onCompletion處理程序。你也不需要準備老球員

相關問題