2012-03-12 88 views
1

我是Android新手。在我的應用程序中,MediaPlayer按順序播放歌曲組。這些歌曲都存儲在一個ArrayList和歌曲名稱存儲在另一個數組列表..Android媒體播放器播放歌曲有序

for(i=0;i< songarray.sizeof();i++) 
{ 
    mp=MediaPlayer.create(this,(Integer) songarray.get(i)); 

    sname.setText(songname.get(i)); 
    mp.start 
} 

的問題是,歌曲的播放只有一個,然後打印一組歌曲的名字。

+0

哪一個玩過嗎?最後一個? – iTurki 2012-03-12 12:31:03

回答

2

你應該監聽器設置爲歌曲的結束,然後開始下一個(順便說一句 - 什麼是sizeof()):

int index = 0; 
sname.setText(songname.get(i)); 
mp = MediaPlayer.create(this,(Integer) songarray.get(i)); 
mp.start(); //as per @iturki comment 
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer player) { 
     mp.release(); 
     if (i < (songarray.size() - 1)) { 
      i++; 
      mp = MediaPlayer.create(this,(Integer) songarray.get(i)); 
      sname.setText(songname.get(i)); 
      mp.setOnCompletionListener(this); 
      mp.start();    
     }   
    } 
}); 
+0

完美。只需要添加'mp.start'即可開始播放第一首歌曲。 – iTurki 2012-03-12 12:39:14

+0

@iturki - 當然...忘了:) :) – MByD 2012-03-12 12:39:45

+0

嗨..最後選定的歌曲只播放... – Palaniraja 2012-03-12 13:19:14