2011-02-09 51 views
2

我試圖將音樂添加到我製作的應用程序中。首先,我嘗試使用.wav文件,儘管它們變得非常大以至於應用程序變得太大而無法在任何地方上傳。用java壓縮音樂的罐子?

所以我將文件改爲.mp3,試圖JMFJLayer雖然他們都將無法在運行的罐子工作(即使他們的工作很好,當我還沒有導出它們)。

因此,任何人都有關於如何使用可運行的jar來播放壓縮音樂的提示?

下面是JLayer代碼在出口時它停止在f = new File(u.toURI())工作沒有拋出任何異常......

try { 

    URL u = cl.getResource("New Beginnings.mp3"); 
    f = new File(u.toURI()); 

} catch (URISyntaxException e1) { 
    e1.printStackTrace(); 
} 

try { 

    FileInputStream fis = new FileInputStream(f); 
    p = new Player(fis); 
    p.play(); 

} catch (Exception e) { 
    System.out.println(e); 
} 

編輯:

try { 

     InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream(temp+".mp3"); 
     p = new Player(fis); 
     p.play(); 

    } catch (Exception e) { 
     System.out.println(e); 
    } 

回答

1

哪兒了:與改變上面的代碼修正你準確放置聲音文件?

您應該創建項目中一個新的包,並把資源在那裏,然後通過發送一個完整的路徑讀取文件:

前。創建一個新的包叫的聲音,然後:

InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream("/sounds/"+temp+".mp3"); 
    p = new Player(fis); 
    p.play(); 

說實話,我沒有聲音嘗試,但這一問題發生在我身上時,我使用的圖像。我把它們放在一個包裏,一切正常。

+0

你不必在你的項目中創建一個新的包,只要把它放在src裏面就可以了。正如前面提到的,我修改了代碼後,我忘記了在jar中創建新文件是不允許的。 :o – Skarion 2011-02-09 10:39:00