CoreAudio和线程,如何?

问题描述:

可以我建立一个AU回调(这是在C)一个单独的线程?怎么样 ?如果是的话,哪种线程方法最适合CoreAudio? NSThreads? NSOperationQueue? GCD?还有别的吗?CoreAudio和线程,如何?

非常感谢。

+1

你能否澄清一点?这是实时还是离线渲染?谁在调用你的渲染函数? – sbooth 2010-11-18 00:56:28

+0

我的意思建设AUGraph,并在主循环读取音频DATAS但运行在一个单独的线程图形,使任何UI操作将不会与音频渲染干扰。希望更清楚。 – 2010-11-20 19:04:09

是不是你的AU的回调已经在一个单独的线程中运行?在大多数情况下,我会说让操作系统为你处理。 UI总是应该在主线程上,而Core Audio通常在另一个线程上做它的东西。

我只有NSThread和pthreads的经验,因为我在GCD和NSOperationQueue之前开始工作,并且没有机会看到他们是否以及如何使用Core Audio。

+0

我创建了我AUGraph和预装在主回路我的声音文件,但我在一个单独的NSThread运行AUGraph。在第一代iPhone上,UI响应速度更快(之前,如果所有内容都在主循环中,并且AU回调过载,UI将会卡住)。 – 2010-11-23 13:32:16

不,这是不可能的,因为:

的呈现回调住在其上 后续渲染调用异步到达实时优先级的线程。 Apple Documentation