2009-09-08 5 views
1

У меня возникают проблемы с использованием AudioQueueOfflineRender для декодирования данных AAC.AudioQueueOfflineRender возвращает пустые данные

Когда я проверяю буфер после вызова, он всегда заполняется пустыми данными. Я убедился, что входной буфер действителен, и предоставляются описания пакетов.

Я искал и нашел, что несколько других имели ту же проблему: http://lists.apple.com/archives/Coreaudio-api/2008/Jul/msg00119.html

Кроме того, аргумент inTimestamp не имеет смысла для меня. Почему ресивер должен ухаживать за тем, где в аудио соответствует начало буфера? Функция выдает ошибку, если я перехожу в NULL, поэтому я все равно пропускаю временную метку.

ответ

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); 
+0

Да, у меня есть эта строка, поскольку это, как представляется, требование. – hyn

+0

Временная метка очень важна, QA1562 показывает это. Вы theTimeStamp.mSampleTime + = writeFrames ;? – slf

Смежные вопросы