【问题标题】:OpenAL alGenBuffers Error Code 40964 SolutionOpenAL alGenBuffers 错误代码 40964 解决方案
【发布时间】:2016-03-15 02:48:09
【问题描述】:

我是openAL编程的菜鸟,遇到了一个错误。

我的代码如下:

ALuint test_buffer[10];
ALenum error;
alGenBuffers(10,test_buffer);
if((error=alGetError())!=AL_NO_ERROR){
  std::cout<<"alGenBuffer Error:"<<error<<std::endl;
}

然后我收到错误代码 40964。 如何解决?

【问题讨论】:

    标签: c++ audio openal


    【解决方案1】:

    首先,您需要在 openAL 常量中查找结果,然后打印更有意义的错误。大致如下:

    public static String openAlErrorToString(int err) {
    switch (err) {
      case AL_NO_ERROR: return "AL_NO_ERROR";
      case AL_INVALID_DEVICE: return "AL_INVALID_DEVICE";
      case AL_INVALID_CONTEXT: return "AL_INVALID_CONTEXT";
      case AL_INVALID_ENUM: return "AL_INVALID_ENUM";
      case AL_INVALID_VALUE: return "AL_INVALID_VALUE";
      case AL_OUT_OF_MEMORY: return "AL_OUT_OF_MEMORY";
      /* ... */
      default:
        return "Unknown error code";
    }
    

    快速谷歌显示 40964 可能是 AL_INVALID_OPERATION 或 AL_INVALID_VALUE。

    从the docs 到alGenBuffers,这只会推送:

    AL_INVALID_VALUE 缓冲区数组不够大,无法容纳 请求的缓冲区数。 AL_OUT_OF_MEMORY 内存不足 生成所有请求的缓冲区。

    AL_INVALID_OPERATION 可能是您程序早期的错误。也许您在堆栈上有剩余的错误代码?在缓冲区初始化之前调用alGetError() 以排除这种情况。

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 2014-08-19
      • 2010-11-29
      • 1970-01-01
      • 2012-09-22
      • 2014-05-15
      相关资源
      最近更新 更多