我在使用AudioQueueOfflineRender解码AAC数据时遇到了问题。
当我在调用后检查缓冲区时,它总是用空数据填充。我确保输入缓冲区有效并提供了数据包描述。
我搜索并发现其他一些人遇到了同样的问题: http://lists.apple.com/archives/Coreaudio-api/2008/Jul/msg00119.html
另外,inTimestamp参数对我没有意义。为什么渲染器应该关注缓冲区开头对应的音频位置?如果我传入NULL,函数会抛出错误,所以无论如何我都会传入时间戳。
答案 0 :(得分:0)
您是否通读了Technical Q&A QA1562和Audio Queue Guide?具体来说,它表明你必须在开始后立即要求0帧:
AudioQueueStart(myInfo.mQueue, NULL);
AudioTimeStamp theTimeStamp;
theTimeStamp.mFlags = kAudioTimeStampSampleTimeValid;
theTimeStamp.mSampleTime = 0;
/*
Important - We need to call this once asking for 0 frames!
*/
AudioQueueOfflineRender(myInfo.mQueue, &theTimeStamp, captureBuffer, 0);