AudioQueueOfflineRender返回空数据

时间:2009-09-08 09:56:54

标签: iphone core-audio audioqueueservices

我在使用AudioQueueOfflineRender解码AAC数据时遇到了问题。

当我在调用后检查缓冲区时,它总是用空数据填充。我确保输入缓冲区有效并提供了数据包描述。

我搜索并发现其他一些人遇到了同样的问题: http://lists.apple.com/archives/Coreaudio-api/2008/Jul/msg00119.html

另外,inTimestamp参数对我没有意义。为什么渲染器应该关注缓冲区开头对应的音频位置?如果我传入NULL,函数会抛出错误,所以无论如何我都会传入时间戳。

1 个答案:

答案 0 :(得分:0)

您是否通读了Technical Q&A QA1562Audio 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);