2010-11-17 26 views
1

可以我建立一個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

回答

0

是不是你的AU的回調已經在一個單獨的線程中運行?在大多數情況下,我會說讓操作系統爲你處理。 UI總是應該在主線程上,而Core Audio通常在另一個線程上做它的東西。

我只有NSThread和pthreads的經驗,因爲我在GCD和NSOperationQueue之前開始工作,並且沒有機會看到他們是否以及如何使用Core Audio。

+0

我創建了我AUGraph和預裝在主迴路我的聲音文件,但我在一個單獨的NSThread運行AUGraph。在第一代iPhone上,UI響應速度更快(之前,如果所有內容都在主循環中,並且AU回調過載,UI將會卡住)。 – 2010-11-23 13:32:16

0

不,這是不可能的,因爲:

的呈現回調住在其上 後續渲染調用異步到達實時優先級的線程。 Apple Documentation