我试图播放每个样本格式为32位的wav文件。当我尝试生成一个OpenAL数据缓冲区并将其作为格式类型的参数AL_FORMAT_STEREO_FLOAT32时,我得到一个OpenAL错误代码40962,我相信这意味着无效的枚举。
为什么会这样?
以下是我在OpenAL中生成缓冲区的方法。
alBufferData(buffer, AL_FORMAT_STEREO_FLOAT32, fWavDataIn, wavHeader.subChunk2Size, wavHeader.sampleRate);
每个样本8位和16位与AL_FORMAT_STEREO16和AL_FORMAT_STEREO8一起正常工作。但是AL_FORMAT_STEREO_FLOAT32不起作用。为什么呢?
答案 0 :(得分:1)
AL_FORMAT_STEREO_FLOAT32不是OpenAL的原生功能。在使用浮点数之前,你应该在alGetString(AL_EXTENSIONS)中检查“AL EXT Float32”。