2012-03-03 34 views
0

我在使用Java中的OpenAL(LWJGL)播放聲音時遇到問題。 更糟糕的是,我不知道錯誤告訴了我什麼。OpenAL WaveData Error

AL lib目錄下:ReleaseALC:1設備不封閉

現在我敢肯定的是,文件的位置是正確的,但waveFile返回一個空,所以錯誤是在第8行;當它試圖從waveFile獲取數據時。

FileInputStream fin = null; 
try { 
    fin = new FileInputStream("res/FancyPants.wav"); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
WaveData waveFile = WaveData.create(fin); 
AL10.alBufferData(buffer.get(0), waveFile.format, waveFile.data, waveFile.samplerate); 
waveFile.dispose(); 

很多謝謝。

回答

2

嘗試在BufferedInputStream中封裝FileInputStream。喜歡這個。

FileInputStream fin = null; 
    BufferedInputStream bin = null; 
    try 
    { 
     fin = new FileInputStream("res/FancyPants.wav"); 
     bin = new BufferedInputStream(fin); 
    } 
    catch(FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
    WaveData waveFile = WaveData.create(bin); 
    AL10.alBufferData(buffer.get(0), waveFile.format, waveFile.data, waveFile.samplerate); 

    waveFile.dispose(); 
+0

這就像一個魅力,非常感謝。我現在可以在一行內完成它了'WaveData data = WaveData.create(new BufferedInputStream(new FileInputStream(「res/FancyPants.wav」)));'' – Iggy 2012-03-04 00:52:45