2012-03-12 13 views
1

私はAndroidが初めてです。私のアプリでは、MediaPlayerは曲のグループを順番に再生します。曲は1つのArrayListに格納され、曲の名前が別のArrayListに格納されている。..Android mediaplayerは整然とした曲を再生します

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

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

問題は、曲は一つだけで、その後1曲の名前を印刷果たしていることです。

+0

を果たしていますか?最後のもの? – iTurki

答えて

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

+0

@iturki - もちろん...忘れてしまった:) – MByD

+0

最後に選択した曲だけを再生する... – Palaniraja

関連する問題