2012-08-06 52 views
3

我試圖簡單地加載音樂資產使用libgdx,這是我所:LIBGDX - 錯誤創建音樂

Music main_background; 
main_background = Gdx.audio.newMusic(Gdx.files.internal("data/music/main_bg.wav")); 

此代碼是完全相同的代碼,因爲他們在小教程「製作遊戲」與libgdx,我試圖加載我自己的聲音(使用GarageBand,以防萬一)。每當我嘗試運行此作爲桌面應用程序,我收到了一堆錯誤:在線程「LWJGL應用」 com.badlogic.gdx.utils.GdxRuntimeException

異常:錯誤創建音樂com.badlogic.gdx.backends .openal.Wav $音樂文件:數據/音樂/ main_bg.wav

產生的原因:java.lang.reflect.InvocationTargetException

產生的原因:com.badlogic.gdx.utils.GdxRuntimeException:錯誤讀取WAV file:data/music/main_bg.wav

引起人:com.badlogic.gdx.utils.GdxR untimeException:RIFF頭未找到:數據/音樂/ main_bg.wav

我不知道這個問題可能是什麼,因爲音頻文件未損壞(因爲我可以聽它完美的罰款),但加載資產時,我無法找到有關發生此類錯誤的人的任何信息。

我有一堆的紋理加載得很好,但由於某些未知的原因,我無法加載音樂資產(和記錄,我試圖加載相同的文件作爲聲音資產,並獲得本質上相同的錯誤) 。

有沒有人遇到過這個或有什麼可能是錯誤的任何想法?

編輯:我要提,如果我嘗試加載MP3或OGG文件以及我也得到這個錯誤,它不只是一個WAV

+0

控制檯中是否還有其他GDX日誌消息?也許關於OpenAL的一些事情?另外,你的桌面是什麼平臺?如果文件根本不存在,您會得到不同的錯誤(例如,像「數據/音樂/亂碼」。wav「) – 2012-08-07 17:39:09

+0

我只是試圖運行我的小遊戲,包括今天的音樂,現在它工作了,我不確定問題仍然存在,因爲我根本沒有改變任何東西(我甚至沒有關閉並重新打開Eclispe),並且我多次刷新資產目錄,因爲我認爲它不知道它存在。 – Ninjalemon 2012-08-07 21:54:50

回答

4

首先發生的,知道聲音和音樂之間的差異在libGdx中。 閱讀原因:https://code.google.com/p/libgdx/wiki/Audio
問題可能出在比特率上。 我有這個問題,我改變了wav文件的比特率爲705kbps,它的工作。

0

您可以將其轉換爲.ogg,佔用更少的空間。並將其保存在數據文件夾中。 然後宣佈了一個名爲music變量:

Music music; 

後,在您的create方法:

music = Gdx.audio.newMusic(Gdx.files.internal("data/whoo.ogg")); 

然後在你的遊戲中的任何地方使用它 - 在rendertouchUptouchDown任何你想要的音樂:

music.play(); 
0

我有同樣的問題。這是通過重新啓動Eclipse解決的。看起來有些SDK文件尚未完全安裝,並且重新啓動Eclipse允許它們完成安裝。