2013-03-21 76 views
3

我正在編寫生成音樂的應用程序。我使用OpenAL來:修改收益;修改音調;混合音頻;並播放結果音頻。我現在需要在播放音頻時錄製它。我知道OpenAL不會讓您錄製輸出音頻。我發現的其他選項是使用音頻單元。但是因爲我需要混音/音調/增益音頻並將其錄製,似乎我需要編寫所有音頻處理,以便可以訪問輸出緩衝區。它是否正確?或者,我可以使用不同的iOS API來執行此操作。如果沒有,那麼是否有第三方解決方案可以讓我記錄輸出(付費解決方案是否正常)?objective-c錄製音頻會話輸出

回答

1

你是對的。

音頻單元是唯一允許應用程序處理並錄製音頻的iOS公共API。

嘗試記錄OpenAL輸出可能違反了Apple使用非公共API的規則。

另一種方法可能是完全重寫RemoteIO音頻單元頂部所需的OpenAL部分(可能有些部分是開源的)。

0

要走的最佳方式很可能是Core Audio,因爲它會爲您提供儘可能多的靈活性。查看Extended Audio File Services參考頁面。

使用和擴展音頻文件,您應該能夠設置文件格式和音頻流緩衝區,以發送最終混合輸出,然後使用ExtAudioFileWrite()函數將樣本寫入文件。