Nie mogę znaleźć rozwiązania dla mojej funkcji (odtwarzanie mp3).
Funckja działa jedynie dla ostatniego pliku na liście i nie wiem dlaczego tak się dzieje, ktoś byłby tak miły i by mnie nakierował? Próbowałem przeróżnych rzeczy - od pobierania czasu trwania pliku i wpisywania if-ów do tworzenia wątków, ale rezultat był ciągle ten sam. Oto fragment kodu:
private static MediaPlayer mediaPlayer;
private static FileChooser fileChooser;
private List<File> selectedFiles;
@FXML
void openDirectory(){
try {
fileChooser = new FileChooser();
FileChooser.ExtensionFilter extensionFilter = new FileChooser.ExtensionFilter("mp3 files (*.mp3)", "*.mp3");
fileChooser.getExtensionFilters().add(extensionFilter);
selectedFiles = fileChooser.showOpenMultipleDialog(null);
}catch (Exception e){
System.out.println("No file");
}
@FXML
void play() {
try {
Iterator iterator = selectedFiles.listIterator();
for (int i = 0; i < selectedFiles.size(); i++) {
Object element = iterator.next();
//System.out.println(element+" ");
String path = element.toString().replace("\\", "/");
System.out.println(path);
System.out.println();
final Media media = new Media("file:///" + path);
mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
mediaPlayer.setOnEndOfMedia(() -> {
mediaPlayer.stop();
});
}
}catch (Exception e){
System.out.println("You need to choose the music file like mp3 etc");
System.out.println("The error name:\n"+e);
}
}