Контекст:Воспроизведение ArrayList из MediaPlayer объектов
Я сделать игру с огромной группой людей для проекта универа, и я хочу, чтобы сделать музыкальный класс, где кто-то может написать Music music = New Music("song1.mp3, song2.mp3, song3.mp3")
и music.play()
где-то еще и он будет воспроизводить эти песни в порядке и навсегда. Файлы должны храниться в определенном месте, мой код в данный момент позаботится об этом. Я хочу, чтобы это было так, поэтому другим людям легко вставлять свою музыку в программу для любой области игры, которую они реализуют (преподаватели захотят, чтобы я это делал).
В данный момент мой код инициализирует с
private ArrayList<MediaPlayer> playlist;
public Music(ArrayList<String> playlistStrings){
playlist = new ArrayList<MediaPlayer>();
for(int i = 0; i<playlistStrings.size(); i++){
URL url = Music.class.getResource("../Music/" + playlistStrings.get(i));
Media media = new Media(url.toString());
MediaPlayer player = new MediaPlayer(media);
playlist.add(player);
}
System.out.println(playlist);
}
ТЛ; др
У меня есть ArrayList объектов MediaPlayer, и я хочу играть их всех, и весь цикл списка воспроизведения. Я понимаю, что я должен использовать Listener в какой-то момент ... но я все еще смущен, потому что хочу иметь прослушиватель, но я также хочу, чтобы он был в каком-то цикле ... У кого-нибудь есть пример этого где-то ? Я уже посмотрел https://gist.github.com/jewelsea/1446612 и извлек его код плейлиста, но это не сработало для меня. Спасибо!
Редактировать: Следующий код может воспроизводить список треков, но я не могу понять, как заставить весь список повторять бесконечно.
public void play(){
System.out.println(trackIndex);
player = playlist.get(trackIndex);
player.play();
player.setOnEndOfMedia(new Runnable() {
@Override public void run() {
System.out.println(trackIndex);
player.stop();
if(trackIndex == (playlist.size()-1)){
trackIndex = 0;
}
trackIndex++;
player = playlist.get(trackIndex);
player.play();
}
});
}