according documentation here https://developer.apple.com/library/mac/documentation/musicaudio/reference/audioqueuereference/#//apple_ref/c/func/audioqueuedispose
err = audioqueuedispose(queue, true); i use true dispose of audioqueue happens immediately, although dispose queue , other times has delay 3-4 seconds 13 seconds on device. err = audioqueuestop(queue, true) has same problem well.
my understanding both functions try flush-release buffers , enqueued...
call-back function flush buffers if audioqueuedispose going 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 going record using audioqueues after playing track, need functions returned without delays. couple hundred milliseconds okay 3-4 seconds? unacceptable.
other audioqueue functions being called on same thread , seem working fine.
i have tried call on main thread make sure if going change or not
[self performselectoronmainthread:@selector(tryonmain) withobject:nil waituntildone:no];
or
dispatch_sync(dispatch_get_main_queue(),^{ didnt difference
any idea might happening?
i stop audio playback by:
-(void)stopaudio { @synchronized(audiolock) { audiolock=[nsnumber numberwithbool:false]; osstatus err; err=audioqueuereset (_audioqueue); if (err != noerr) { nslog(@"audioqueuereset() error: %d", (int)err); } err=audioqueuestop (_audioqueue, yes); if (err != noerr) { nslog(@"audioqueuestop() error: %d", (int)err); } err=audioqueuedispose (_audioqueue, yes); if (err != noerr) { nslog(@"audioqueuedispose() error: %d", (int)err); } } } and in my:
void audiocallback(void *custom_data, audioqueueref queue, audioqueuebufferref buffer) i put more stuff in queue if:
myobject *weakself = (__bridge myobject *)custom_data; @synchronized(weakself -> audiolock) { if ([weakself -> audiolock boolvalue]) { put_more_stuff_on_queue } in particular case playback aac-lc audio.
Comments
Post a Comment