2011-01-27 107 views
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??? 
} 

回答

2

原来,我的用户数据结构并没有声明为一个伊娃头文件。菜鸟的错误...

相关问题