【发布时间】:2015-07-10 05:41:44
【问题描述】:
最近朋友给了我一些代码,意思是转换然后播放和分析音乐,但是当我尝试将它集成到我自己的项目中时,它会抛出错误并拒绝播放音乐。
我跟踪了代码的流程,发现第一行与原始代码不一致。
#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,位于 /Users/justking14/projectname/template/multi-platform-cpp/proj.ios/PcmStreamer.cpp 61
第一个错误2496
第二个错误0
*buffers 在这个项目上总是给出相同的数字,在原始代码上给出一个不同但不变的数字。
源总是在原件上给出相同的数字,但在我的代码中它给出的数字介于 0 和 2089734272 之间。
【问题讨论】:
标签: c++ objective-c cocos2d-x openal pcm