我正在嘗試使用我剛發現(JLayer)的整齊庫來播放mp3文件,並且在編譯時(在Netbeans中)使用此代碼可以正常工作:文件輸入流在編譯器中正常工作,但在編譯後無法工作
ClassLoader cl = this.getClass().getClassLoader();
url = cl.getResource("music/45.mp3");
pin = new FileInputStream(url.getFile());
p = new Player(pin);
p.play();
我建立了我的項目,並試圖運行可執行jar。我擴展了JFrame,以便可以直觀地看到我的程序正在運行。框架在執行時出現,但沒有聲音。我雖然使用類加載器將解決這個問題,但沒有運氣。幫助將不勝感激!
好吧有道理。爲了理解FileInputStream在這種情況下的功能:假設我將可執行jar放在一個名爲「player」的文件夾中,並將另一個文件夾放在「player」中稱爲「media」。然後,我會讓該程序在相對位置的jar文件之外尋找名爲「media」的文件夾。 FileInputStream會適用於那麼? –
@DillonBurton:不,因爲MP3資源*不是文件*。它包含在一個jar文件中。 'FileInputStream'從磁盤上的文件中讀取數據 - 不是*文件內嵌入的東西。 –
好吧,真的清除了事情。謝謝,先生,+1。 –