2009-09-08 9 views
1

Je rencontre des problèmes lors de l'utilisation de AudioQueueOfflineRender pour décoder les données AAC.AudioQueueOfflineRender renvoyant des données vides

Lorsque j'examine le tampon après l'appel, il est toujours rempli de données vides. J'ai vérifié que le tampon d'entrée est valide et que les descriptions de paquets sont fournies.

J'ai cherché et a constaté que quelques autres ont eu le même problème: http://lists.apple.com/archives/Coreaudio-api/2008/Jul/msg00119.html

En outre, l'argument inTimestamp n'a pas de sens pour moi. Pourquoi le moteur de rendu devrait-il prendre soin de l'endroit où correspond le début du tampon? La fonction jette une erreur si je passe en NULL, donc je passe dans l'horodatage de toute façon.

Répondre

0

Avez-vous lu Technical Q&A QA1562 et le Audio Queue Guide? Spécifiquement, il indique que vous devez demander 0 images immédiatement après le début:

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

Oui, j'ai cette ligne car elle semble être une exigence. – hyn

+0

L'horodatage est très important, QA1562 le montre. Êtes-vous theTimeStamp.mSampleTime + = writeFrames ;? – slf