我正在尝试使用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);
}
`