#java #windows #escaping #media-player
#java #Windows #экранирование #медиаплеер
Вопрос:
я пытаюсь воспроизвести mp3 из местоположения на моем жестком диске.
Файл находится здесь:
C:ItunesMusicEminemШоу Эминема [Явное] 18 ‘, пока я не сверну [Явное].mp3
В этом пути много специальных символов, таких как [ и ‘ . Когда я пытаюсь загрузить файл со следующим кодом:
path = URLEncoder.encode(path, "UTF-8");
Media hit = new Media("file:///" path);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
я получаю ошибку «недопустимый символ» в имени пути.
Моя операционная система — Windows 8.
Я очень новичок в Java и надеюсь, что найду какую-то помощь.
Ответ №1:
Я считаю, что вам нужно закодировать свой URI
Смотрите: http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx
Комментарии:
1. Я не понимаю, что вы хотите, чтобы я сказал. Я пытаюсь загрузить URI из файла, подобного пути к файлу. toUri() и загрузить путь из uri в медиаплеер. Это не работает.
2. О, извините, я не очень хорошо прочитал ваш код! Выдает ли медиа-конструктор ошибку? Или URLEncoder выдает его?
3. Я думаю, что на самом деле это медиа-конструктор, выдающий ошибку. Проверьте это . Может показаться, что URI, который вы пытались использовать, не соответствует стандарту rfc2396… Если вы перейдете на страницу 10 здесь , вы увидите, что квадратные скобки указаны как «неразумные». Я бы попробовал просто распечатать экранированный путь и дважды проверить, что все нечетные символы действительно экранированы.
4. C:Itunes5CMusicEminemThe Eminem Show [Explicit]18 ‘Till I Collapse [Explicit]. mp3 — это мой закодированный путь к файлу. Кодируется с помощью UTF-8.
5. У вас есть какая-либо дополнительная информация об ошибке? Трассировка стека?