Wavedata和openal不工作

时间:2015-10-12 14:10:36

标签: java lwjgl openal

我正在尝试使用openal在游戏中播放声音。

但是当我尝试用以下内容缓冲数据时:

AL10.alBufferData(buffer, waveFile.format, waveFile.data,
                waveFile.samplerate);

它给出错误:AL_INVALID_ENUM

我真的不明白这是因为我正在做所有教程所做的事情。 请帮帮我。

以下是存储缓冲区数据的声音类的代码

public Sound(String path) throws FileNotFoundException {
    int error;
    // Load wav data into a buffer.
    buffer = AL10.alGenBuffers();

    error = AL10.alGetError();
    if (error != AL10.AL_NO_ERROR) {
        System.err.println("ERROR: " + Maths.getALErrorString(error));
    }
    InputStream fin = null;

    File f = new File(path);
    fin = new FileInputStream(f.getAbsoluteFile());

    error = AL10.alGetError();
    if (error != AL10.AL_NO_ERROR) {
        System.err.println("ERROR: " + Maths.getALErrorString(error));
    }

    WaveData waveFile = WaveData.create(new BufferedInputStream(fin));
    AL10.alBufferData(buffer, waveFile.format, waveFile.data, waveFile.samplerate);
    // TODO FIX ERROR

    error = AL10.alGetError();
    if (error != AL10.AL_NO_ERROR) {
        System.err.println("ERROR: " + Maths.getALErrorString(error));
    }

    waveFile.dispose();
}

public int getBuff() {
    return buffer;
}

public void setBuff(int buff) {
    this.buffer = buff;
}

public void destroy() {
    AL10.alDeleteBuffers(buffer);
}

`

0 个答案:

没有答案