gpt4 book ai didi

objective-c - 如何让AudioQueue播放而不卡住GUI?

转载 作者:行者123 更新时间:2023-12-03 16:39:04 24 4
gpt4 key购买 nike

我刚刚开始从 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com