我在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();

10-06 13:36