2014-11-01 61 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

嘗試file:// d:/dt_32bars_120tribal.wav,但我不確定。 – WannaBeCoder 2014-11-01 19:18:40

回答

2

你可以使用File.toURI()生成一個正確轉義URI字符串:

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

Media(String)文檔:

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

空間,例如,已經被轉義爲%20

+0

什麼是%20 ??? – user3199837 2014-11-01 19:51:56

+1

[百分比編碼](http://en.wikipedia.org/wiki/Percent-encoding) - 只是在特定上下文中表示「特殊」字符(如空格)的方式,最突出的是URI/URL。 – xsc 2014-11-01 20:02:12

+0

謝謝!還有一個問題,URI和URL有什麼區別。我想我知道什麼是URL – user3199837 2014-11-03 07:53:35

相關問題