我有一個關於CoreAudio和AVFoundation的問題。CoreAudio和AVFoundation之間的性能
我使用帶有AUGraph和AudioUnit的CoreAudio構建了專業音頻應用程序。
我想切換到AVFoundation框架,這似乎是非常棒的。但由於我擔心表演,我想多瞭解一點。
在我的核心音頻渲染回調中,我可以用44100kHz的採樣率處理512個採樣,所以我的回調每10ms調用一次,我認爲它可以很容易地加快(對嗎?)。
現在在AVFoundation中,呈現回調是AVAudioNode的Tap。並且我在評論中看到,bufferSize參數是the requested size of the incoming buffers in sample frames. Supported range is [100, 400] ms.
那麼這是否意味着我將無法在每次調用中處理少於4410個樣本?
限制是否來自Objective-C約束(消息調用,鎖等)?
它不會對實時DSP過程產生影響嗎?
非常感謝你@ hotpaw2!我總是很感謝你在這裏的質量答案。 這就是我正在尋找的,它似乎是一個很好的解決方案。我沒有介紹AUAudioUnit的子類。順便說一句,我們無法從AVAudioPlayer獲得音頻單元,所以我們非常傷心...所以,如果我理解的很好,以較高的速率獲取/更改AVAudioPlayerNode示例的正確方法是:AVAudioPlayerNode - > MyCustomAU(with呈現回調) - > OtherAVAudioUnit。事實上,似乎只用macOS 10.13或更高版本就可以從中獲得AudioUnit ... – DEADBEEF
我以前的評論的來源[Apple文檔](https://developer.apple.com/documentation/avfoundation/avaudionode/2866396-auaudiounit) – DEADBEEF
AUAudioUnit子類似乎適用於在運行於macOS 10.12下的iOS Simulator內運行的代碼。猜猜這可能意味着什麼... – hotpaw2