2012-04-06 85 views
2

我周圍搜查,但沒有發現任何很好的例子或保存音頻出RemoteIO音頻單元的教程。從RemoteIO保存音頻的示例?

我的設置:使用MusicPlayer API,我有幾個AUSamplers - > MixerUnit - > RemoteIO

音頻播放的偉大工程。我想添加將音頻輸出保存到文件的功能。我會在RemoteIO的回調函數中執行此操作嗎?

任何提示或指針示例代碼非常感謝!

回答

1

由於音頻單元回調的嚴格的延時要求,一個不應該做任何同步文件訪問(或任何其他調用,可能阻斷,包括內存管理或OS鎖定動作)的RemoteIO回調裏面。相反,只需將音頻數據複製到另一個緩衝區(例如較大的循環緩衝區),然後設置一些狀態來指示覆制了多少數據。然後,在另一個線程中,當數據量充足時,將該緩衝區的內容寫入文件。這可能是一個原始的PCM文件,它可以稍後由AVAssetReader/Writer轉換爲另一種音頻文件類型。

+3

ExtAudioFileWriteAsync(不過outFile,numberFrames,&bufferList);會爲你做這個,所以你可以從RemoteIO回調中調用它。這確實是全部。 – hooleyhoop 2012-04-06 17:32:16

+0

我有錄音工作,但聲音失真 - 可能是我指定的格式有問題?我張貼的問題@在這裏:http://stackoverflow.com/questions/10067117/recording-from-remoteio-resulting-caf-is-pitch-shifted-slower-distorted - 任何提示不勝感激! – 2012-04-09 13:42:41

+0

已發佈的解決方案在這裏:http://stackoverflow.com/questions/10067117/recording-from-remoteio-resulting-caf-is-pitch-shifted-slower-distorted – 2012-04-09 15:44:35