2012-03-03 38 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