2008-09-01 281 views
8

我想從Mac的線路輸入或內置麥克風中提取PCM樣本流,並進行一些實時分析(確切的性質與此問題無關,但它可能每次都是FFT經常或關於樣本水平的一些基本統計數據,或者你有什麼)。Mac上的簡單音頻輸入API?

這有什麼用?編寫一個只傳遞聲音的音頻單元,並順帶將其傳遞到某個地方進行分析?編寫一個支持JACK的應用程序,並弄清楚如何讓它與JACK服務器一起玩? Ecasound?

這是一個俗氣的概念驗證愛好項目,所以API的簡單性是驅動因素(隨後是編程語言的合理選擇)。

回答

5

我認爲portaudio是你所需要的。 從控制檯應用程序中讀取麥克風是一個10行的C文件(請參閱portaudio distrib中的patests)。

+0

以下是通過麥克風錄製音頻並將其保存到文件的示例鏈接:http://portaudio.com/docs/v19-doxydocs/paex__record_8c.html – 2015-12-07 18:46:42

4

Mac OS X中音頻開發的主要框架是Core Audio;它是所有音頻I/O的基礎。音頻工具箱,音頻隊列服務,QuickTime和QTKit都有其上的圖層,如果您想爲常見任務使用簡化的API,則可以使用這些圖層。

若要拉取樣本流,您可能需要使用Audio Queue Services; AudioQueueNewInput函數將設置PCM數據的記錄並將其傳遞給您提供的回調。

在您的Mac上,/Developer/Examples/CoreAudio/SimpleSDK中有一組核心音頻示例,其中包括音頻隊列服務錄製API的使用(AudioQueueTools中的AQRecord)。

+0

嗨,Chris。音頻隊列服務確實提供了一個不錯的,乾淨的API。我最終與portaudio一起爲這個兼容Tiger的項目工作,但一直羨慕地盯着AQRecord。 – undees 2008-09-08 18:48:49