Например, у меня есть публичный метод void shuffle
.Я хочу, чтобы, когда я щелкаю (onclick) пункт меню, некоторые медиа (mp3) внутри этого метода воспроизводились последовательно и после последнего медиа перестали воспроизводиться.я хочу, чтобы case
позиции воспроизводились последовательно от case 0
до case 3
, а после воспроизведения case 3
медиаплеер прекращает воспроизведение.мне нужно, чтобы они играли автоматически, как после case 0
, автоматически запускается case 1
, затем case 2, case 3
.я не знаю, как реализовать mediaplayer.setOnCompletionListener
внутри этого публичного метода
public class MainActivity extends AppCompatActivity{
ListView lv;
MediaPlayer mediaPlayer;
int position = 0;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
position = pos;
.....
.....
}
public void shuffle1(MenuItem item){
mediaPlayer.stop();
if(position > 3){
position = 0;
}
else if(position < 0){
position = 3;
}
switch(position){
case 0:
mediaPlayer = MediaPlayer.create(this, R.raw.al098);
break;
case 1:
mediaPlayer = MediaPlayer.create(this, R.raw.al099);
break;
case 2:
mediaPlayer = MediaPlayer.create(this, R.raw.al100);
break;
case 3:
mediaPlayer = MediaPlayer.create(this, R.raw.al101);
break;
}
mediaPlayer.start();
}
EDIT: I did like this, but still no affect:
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
if(position == 0){
position++;
mediaplayer.start();
}else if (position ==1){
position++;
mediaplayer.start();
}else if (position ==2){
position++;
mediaplayer.start();
}else if (position ==3){
position++;
mediaplayer.start();
}else if (position ==4){
mediaplayer.stop();
return;
}
}
});