我正在研究VOIP应用程序,用于语音捕获和播放我正在使用AudioQueue框架,面对一个有线问题,
每当应用程序窗口变得小型化时,它就不会播放音频的秒数,直到窗口不会小型化。
我觉得由于在主线程中运行AudioQueue,我尝试在其他线程中运行audioQueue,但是因为AudioQueue无效。
有任何指示如何解决此问题?
或....当用户按最小化按钮时,有没有办法处理通知,我可以处理并拒绝在音频播放时缩小尺寸?我正在获得关闭和其他活动的委托方法,但没有按下最小化按钮。
答案 0 :(得分:0)
感谢您查看
在播放音频队列中使用CFRunloop解决了这个问题,
OSStatus status = AudioQueueStart(mQueue,NULL);
NSLog(@" Start AudioQueue returns %d",(int)status);
if ( status != noErr) {
NSLog(@"AudioQueueStart Error ");
mIsRunning = TRUE;
}
do { // 5
CFRunLoopRunInMode ( // 6
kCFRunLoopDefaultMode, // 7
0.25, // 8
false // 9
);
} while (mIsRunning);
CFRunLoopRunInMode ( // 10
kCFRunLoopDefaultMode,
1,
false
);
使用这行代码,我可以从线程启动audioQueue。