According to documentation
err = AudioQueueDispose(queue, true);
I use true so dispose of AudioQueue happens immediately, although it does
dispose queue immediately sometimes , other times it has delay 3-4 seconds
up to 13 seconds on the device. err = AudioQueueStop(queue, true) has the
same problem as well.

My understanding is that both functions try to flush-release buffers
already and about to be enqueued...
so I even help my call-back function to flush the buffers if
AudioQueueDispose is going to be called.

static void MyAQOutputCallBack(void *inUserData, AudioQueueRef inAQ,
AudioQueueBufferRef inCompleteAQBuffer)
{
  if (player.shouldDispose) {
        printf("player shouldDispose !!!!!!!!!!!\n\n\n\n\n\n");
        OSStatus dispose = AudioQueueFlush (inAQ);
        return;
    }
}

Since I am going to record something using AudioQueues after playing a
track, I need this functions returned without delays. couple hundred
milliseconds delay is okay but 3-4 seconds? that is unacceptable.

Other AudioQueue functions also being called on the same thread and they
seem working fine.

I have also tried to call this on main thread to make sure if it is going
to change anything or not

[self performSelectorOnMainThread:@selector(tryOnMain) withObject:nil
waitUntilDone:NO];

or

dispatch_sync(dispatch_get_main_queue(),^{ didnt do any difference

Any idea what might be happening?
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to