Как освободить файлы после проигрывания MediaPlayer JavaFX
Есть метод initPlayer() который отвечает за сканирование папки с медиа файлами, и ее проигрывания
private void initPlayer() {
File dir = new File("media/");
final List<MediaPlayer> players = new ArrayList<>();
File folder = new File(String.valueOf(dir));
ArrayList<File> listofFiles = new ArrayList<>(Arrays.asList(Objects.requireNonNull(folder.listFiles())));
File file;// = null;
for (File listofFile : listofFiles) {
file = new File(listofFile.getName());
System.out.println(file.toString());
players.add(new MediaPlayer(new Media(new File(dir + "/" + file).toURI().toString())));
}
mediaView = new MediaView(players.get(0));
mediaView.setX(0);
mediaView.setY(0);
for (int j = 0; j < players.size(); j++) {
final MediaPlayer player = players.get(j);
final MediaPlayer nextPlayer = players.get((j + 1) % players.size());
player.setOnEndOfMedia(() -> {
mediaView.setMediaPlayer(nextPlayer);
nextPlayer.play();
System.out.println(nextPlayer.getStatus().toString());
System.out.println(player.getStatus().toString());
if (nextPlayer.getStatus().toString().equals("PLAYING")){//если плейлис дошел до конца, делаем перезапуск метода
initPlayer();
}
});
}
mediaView.setMediaPlayer(players.get(0));
mediaView.getMediaPlayer().play();
root.getChildren().addAll(mediaView);
}
Все работает хорошо, но проблема заключается в том, что когда запущенна программа, я не могу удалить никакой из этих файлом (система ругается на то, что файл используется). Как можно сделать, чтобы после проигрования, файл больше не использовался?