作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始从 CoreAudio 书(粗剪)中学习 AudioQueues。我做了AudioQueue播放示例教程,与苹果教程示例基本相同。一切工作正常。
当我尝试在具有 GUI 的应用程序中实现代码时,问题就开始了。我通过将代码粘贴到 NSObject 子类的“init”方法中来测试它。我可以让队列执行回调的唯一方法是在 init 末尾插入一个空的 DO...WHILE 循环,但这会使 GUI 卡住(显然...)!!
显然,只要为 inCallbackRunLoop 和 CallbackRunLoopMode 参数将 AudioQueueNewOutput 传递为 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???
}
最佳答案
事实证明,我的 userData 结构没有在头文件中声明为 ivar。菜鸟错误...
关于objective-c - 如何让AudioQueue播放而不卡住GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818002/
我是一名优秀的程序员,十分优秀!