2
我刚开始学习CoreAudio书中的AudioQueues(粗略剪切)。 我做了AudioQueue播放示例教程,它与Apple教程示例基本相同。一切工作正常。如何让AudioQueue在不冻结GUI的情况下播放?
当我尝试在具有GUI的应用程序中实现代码时,问题就开始了。我通过将代码粘贴到NSObject子类的'init'方法来测试它。我可以通过插入一个空的DO ... WHILE循环到我的init结尾,但这会使GUI冻结(显然是......)!!
显然,只要AudioQueueNewOutput为inCallbackRunLoop和CallbackRunLoopMode参数传递NULL,AudioQueue应该自动在其自己的单独线程中运行。这只是没有发生。我只听到缓冲区启动1.5秒钟。
显然,有一些基本的东西,我不明白的事情是如何工作的?
卡斯帕
-(void) start
{
CheckError(
AudioQueueStart(queue, NULL),
"AudioQueueStart failed");
printf("Playing...\n");
do {
} while (0 == 0); //WHY IS THIS MAKING IT PLAY???
}