2014-11-01 1 views
2
private static final String MEDIA_URL =  
    "file:///d:/dt_32bars_120tribal.wav"; 
    //"file:///d:/Linkin Park - Numb.mp3"; 
Media media = new Media(MEDIA_URL); 
MediaPlayer mediaPlayer = new MediaPlayer(media);  

file:///d:/dt_32bars_120tribal.wav; 프로그램이 작동 할 수 있습니다. 하지만 두 번째 것을 사용할 때 : file:///d:/Linkin Park - Numb.mp3; 그것은 작동하지 않을 수 있습니다.media (String str)는 str에 공백을 허용하지 않습니다.

MP3의 이름을 LinkinPark-Numb.mp3 (모든 공백 삭제)으로 바꾼 다음 file:///d:/LinkinPark-Numb.mp3을 사용합니다. 이제 작동 할 수 있습니다.

즉, Media()은 파일 이름에 공백을 허용 할 수 없습니까? 그러나 우리 모두가 알고 있듯이 때때로 mp3 파일의 이름은 여러 개의 공백을 포함합니다. 어떻게 처리 할 수 ​​있습니까?

+0

try file : // d : /dt_32bars_120tribal.wav하지만 확실하지 않습니다. – WannaBeCoder

답변

2

당신은 제대로 URI 문자열을 탈출 생성 File.toURI()을 사용할 수

The supplied URI must conform to RFC-2396 as required by java.net.URI. 

스페이스, 예를 들어, %20로 이스케이프 할 필요가 :

new java.io.File("abc def.mp3").toURI().toString(); 
;; => "file:/.../abc%20def.mp3" 

Media(String) 설명서를 참조하십시오.

+0

% 20은 무엇입니까 ??? – user3199837

+1

[Percent-encoding] (http://en.wikipedia.org/wiki/Percent-encoding) - 특정 상황 (가장 눈에 띄는 URI/URL)에서 "특수"문자 (공백과 같은)를 나타내는 방법입니다. – xsc

+0

감사합니다! 질문 하나 더, URI와 URL의 차이점은 무엇입니까? 나는 URL이 무엇인지 알고 있다고 생각한다. – user3199837