2010-02-23 33 views
3

從CoreAudio中的麥克風錄音時,什麼是kAudioDevicePropertyBufferFrameSizedocs說它是"A UInt32 whose value indicates the number of frames in the IO buffers"。但是,這並沒有說明你爲什麼要設置它。在CoreAudio中,設置kAudioDevicePropertyBufferFrameSize有什麼優點/缺點?

kAudioDevicePropertyBufferFrameSizeRange屬性爲您提供緩衝幀大小的有效最小值和最大值。是否將緩衝區大小設置爲最大緩慢?您何時想將其設置爲默認值以外的其他值?

+0

這個常量似乎並不存在於iOS ..有關如何找到替換的任何想法? – abbood 2012-10-31 11:47:08

回答

3

下面是他們發自內心的對CoreAudio list說:

是尋找低 等待IO應該將此值設置爲 小,因爲它可以跟上的應用程序。

在另一方面,不 有大的反應要求或其他 原因低延遲可以 增加此值允許數據 以較大的塊進行分塊並 減少次數應用每秒 IOProc被調用。請注意,這個 不一定會降低系統上的總負載量 。實際上, 增加IO緩衝區大小可能會產生相反的影響,因爲緩衝區大於 ,這使得它們可能非常適合高速緩存,而不是 真的會降低性能。

在一天結束的時候,一個 應用程序選擇了它的價值的IO大小是真的 東西是依賴於應用程序 和它做什麼。

1

通常情況下,您會將其保留爲默認值,但如果在處理鏈中有一個AudioUnit需要或針對特定緩衝區大小進行優化,您可能需要更改緩衝區大小。此外,通常,較大的緩衝區大小會導致錄製和回放之間的延遲較長,而較小的緩衝區大小會增加正在記錄的每個通道的CPU負載。

相關問題