1

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

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

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

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

4

1 回答 1

0

您是否阅读过技术问答 QA1562音频队列指南?具体来说,它声明您必须在开始后立即请求 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);
于 2009-09-08T13:38:42.090 回答