0

Recently I was using AudioQueue to play network AAC data. My plan is that once a AAC data is received, audioqueue enqueue this buffer and play immediately.

When I start audioQueue, I use AudioQueueStart(audioQueue, NULL) to start audioQueue as soon as possible.

However, when I print log, I notice that the AAC buffer was enqueued by AudioQueueEnqueueBuffer(audioQueue, buffer, 0, NULL) immediately but the sound played after enqueuing buffer which delayed for around 2-3 seconds. It means I received and enqueued the data at beginning but the first sound started 2-3 seconds later.

I wonder if it is because that audioqueue service decode AAC to PCM itself so the sounds delayed. If so, should I decode AAC myself and use Audio Unit instead?

I've been confused for a while and wish anyone can light me up!

Rango
  • 21
  • 5

1 Answers1

0

Finally I found the reason. When the AAC data is late, I pause the audioQueue and start again when the data come. the PAUSE operation lead to the delay of playback.

Rango
  • 21
  • 5