alGenSources不断提供随机来源

时间:2015-07-10 05:41:44

标签: c++ objective-c cocos2d-x openal pcm

我最近给了一些朋友的代码,这意味着转换然后播放和分析音乐,但是当我尝试将它集成到我自己的项目中时,它会抛出错误并拒绝播放音乐。

我已经跟踪了代码的流程,并找到了与原始代码不一致的第一行。

#define AL_CALL(a) { a; checkError(__FILE__, __LINE__); }
bool PcmStream::open(string path){
printf("PcmStream %s", path.c_str());
fp = fopen(path.c_str(), "rb");
if(!fp){
    printf("Audio file at path %s is missing", path.c_str());
    return false;
}
fseek(fp, 0L, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
printf("File size %lu Bytes", file_size);

AL_CALL(alGenBuffers(BUFFERS_NUMBER, buffers));
AL_CALL(alGenSources(1, &source));
printf("\n \n First error %u \n \n", *buffers);

printf("\n \n Second error %d \n \n", source);

这输出: BytesOpenAL错误40964 at /Users/justking14/projectname/template/multi-platform-cpp/proj.ios/PcmStreamer.cpp 61

第一个错误 2496

第二个错误 0

* buffers总是在这个项目中给出相同的数字,在原始代码上给出一个不同但是常数的数字。

Source始终在原始数字上给出相同的数字,但在我的代码中,它提供0到2089734272之间的任何数字。

1 个答案:

答案 0 :(得分:0)

原来我使用的共享SimpleAudioEngine阻止了音频端口。