Я пытаюсь создать простой проигрыватель musi c с использованием JavaFX Media и MediaPlayer, но недавно у меня возникла странная проблема: некоторые из моих mp3-файлов вызывали MediaException, но большинство из них не
Exception in thread "JavaFX Application Thread" MediaException: MEDIA_UNAVAILABLE
Я выяснил, что только файлы с не символами US-ASCII в пути к файлу выдают исключение, поэтому я попытался кодировать их с помощью класса URLEncoder, он ничего не исправил, поэтому я кое-что закончил как это:
String path = "";
try {
path = new File(song.getFilePath()).toURI().toASCIIString();
} catch(Exception e) {
e.printStackTrace();
}
Media currentSongMedia = new Media(path);
, но это все еще не решает проблему. Когда я печатаю переменную path, она отображается как закодированная без каких-либо символов, отличных от US-ASCII, но все равно не работает. Кодировка в моей IDE, кажется, установлена правильно, также как и локаль приложения.
Пример пути к файлу, вызывающего проблему:
E:\music\trojkątwarszawski\06. Mięso.mp3
Воспроизводимый пример:
import java .io.File; import javafx.scene.media.Media;
public class Main {
public static void main(String[] args) {
String path = "E:\\music\\trojkatwarszawski\\06. Mięso.mp3";
Media media = new Media(new File(path).toURI().toASCIIString());
}
}
Есть идеи, что может вызвать проблему?