我在netbeans(不適用於android)中製作了一個小型Java音樂播放器應用程序。我們已經在項目中創建了一個資源文件夾,並在其中播放音樂播放器應播放的內容。我們有所有的功能,除了我們無法弄清楚如何從項目地圖中調出歌曲。我們現在已經將其硬編碼到了特定的位置,但這不適用於其他計算機。從項目地圖中播放文件
有人有解決方案,以便我們可以從我們的項目地圖中調出歌曲嗎?
我在netbeans(不適用於android)中製作了一個小型Java音樂播放器應用程序。我們已經在項目中創建了一個資源文件夾,並在其中播放音樂播放器應播放的內容。我們有所有的功能,除了我們無法弄清楚如何從項目地圖中調出歌曲。我們現在已經將其硬編碼到了特定的位置,但這不適用於其他計算機。從項目地圖中播放文件
有人有解決方案,以便我們可以從我們的項目地圖中調出歌曲嗎?
既然你在你的項目中Assets
文件夾,你可以做這樣的事情:
initializeAudio("Assets/my_cool_song.wav");
其中initializeAudio
依靠Clip
對象的類級別宣言:
private void initializeAudio(final File url) {
try {
if (clip != null) stopPlay();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(url);
clip = AudioSystem.getClip();
clip.open(inputStream);
} catch (Exception e) {
stopPlay();
System.err.println(e.getMessage());
}
}
這可以在所有使用項目(或JAR)的計算機上運行,而initializeAudio("/Users/myusername/Developer/Projects/AudioApp/Assets/my_cool_song.wave");
不起作用的原因是因爲一個依賴於硬編碼的絕對路徑,另一個依賴於相對於結構的文件路徑該項目的e。創建相對路徑時,假設項目的基本目錄全部存在。
因此,舉例來說,如果你的項目結構是MyProject
夾帶着孩子Assets
,src
,bin
和util
,和你想參考一些項目util
文件夾中,沿着像這樣的路徑傳遞:util/my_cool_file.jpeg
我不太清楚我的理解是什麼意思,但是可以由用戶定義的屬性文件呢?您可以設置該屬性文件中歌曲的路徑並從應用程序中加載它。 – Keews
我想你正在尋找[this](http://stackoverflow.com/questions/14209085/how-to-define-a-relative-path-in-java)。如果我理解正確,你只需要一個相對的音樂路徑。 – Avantol13