Я пробовал так:
@FXML
void playButtonFunction() throws URISyntaxException {
final int selectedIdx = listView.getSelectionModel().getSelectedIndex();
if (selectedIdx != -1) {
Media pick = new Media("file:%2F%2F" + arrayList.get(selectedIdx).getPath().replaceAll(" ","%20")); // replace this with your own audio file
mediaPlayer = new MediaPlayer(pick);
mediaPlayer.play();
}
}
но я получил java.lang.IllegalArgumentException:
Exception in thread "Thread-5" java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(File.java:418)
at com.sun.media.jfxmedia.locator.ConnectionHolder$FileConnectionHolder.openFile(ConnectionHolder.java:216)
at com.sun.media.jfxmedia.locator.ConnectionHolder$FileConnectionHolder.<init>(ConnectionHolder.java:175)
at com.sun.media.jfxmedia.locator.ConnectionHolder.createFileConnectionHolder(ConnectionHolder.java:62)
at com.sun.media.jfxmedia.locator.Locator.createConnectionHolder(Locator.java:600)
at com.sun.media.jfxmediaimpl.MetadataParserImpl.run(MetadataParserImpl.java:102)
Также я пытался с файловым объектом:
File file = new File(arrayList.get(selectedIdx).getPath());
Media pick = new Media(ClassLoader.getSystemResource(file.getName()).toExternalForm());
mediaPlayer = new MediaPlayer(pick);
mediaPlayer.play();
но потом я получил
java.lang.reflect.InvocationTargetException
и я не знаю, как я мог это отладить.