Есть ArrayList с файлами музыки. При попытке запустить файл с музыкой вылетает 500 ошибок. Ошибка возникает из за конкретной строки:
media = new Media(songs.get(songNumber).toURI().toString());
Что делать? как решить? второй час голову ломаю.
package soundkeeper.sound;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.ProgressBar;
import javafx.scene.control.Slider;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.FileChooser;
import java.io.*;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
public class HelloController implements Initializable {
@FXML
private ImageView addMusic;
@FXML
private ListView musicList;
@FXML
private ProgressBar musicProgress;
@FXML
private Slider musicVolumeScroll;
@FXML
private Label soundLabel;
private ArrayList<File> songs ;
private Media media;
private MediaPlayer mediaPlayer;
private int songNumber;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
songs = new ArrayList<File>();
String fileName = System.getProperty("user.dir");
File musicFile = new File(System.getProperty("user.dir")+"/music");
boolean a = musicFile.mkdir();
if (musicFile.length() > 0) {
for (File file : musicFile.listFiles()) {
songs.add(file);
}
refreshMusicList();
}
}
@FXML
public void getMusic(MouseEvent event) throws IOException {
FileChooser MusicFile = new FileChooser();
MusicFile.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("MP3 Files", "*.mp3"));
List<File> selectedFiles = MusicFile.showOpenMultipleDialog(null);
File copyMusic;
if (selectedFiles != null) {
for (File file : selectedFiles) {
copyMusic = new File(System.getProperty("user.dir")+"/music");
Files.copy(file.toPath(),copyMusic.toPath(),REPLACE_EXISTING);
songs.add(file);
}
}
refreshMusicList();
}
public void refreshMusicList() {
musicList.getItems().clear();
for (int i = 0; i < songs.size(); i++) {
musicList.getItems().add(songs.get(i).getName());
}
}
@FXML
void playMusic(MouseEvent event) {
System.out.println(songs.get(songNumber).toURI().toString());
media = new Media(songs.get(songNumber).toURI().toString());
mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
}
}
Вот, что говорит консоль: