我在Java(LWJGL)中使用OpenAL播放声音时遇到问题。
更糟糕的是,我不知道错误告诉我什么。
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();
非常感谢。
最佳答案
尝试将FileInputStream包装在BufferedInputStream中。像这样。
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();