我想从Mac的线路输入或内置麦克风中提取PCM样本流并进行一些实时分析(确切的性质与此问题无关,但它可能是一个FFT每个经常,或一些关于样本水平的基本统计数据,或者你有什么)。
什么是合适的?编写一个只传递声音的AudioUnit并顺便将其移到某处进行分析?编写一个支持JACK的应用程序,并弄清楚如何让它与JACK服务器一起玩? Ecasound?
这是一个俗气的概念验证爱好项目,因此API的简单性是驱动因素(其次是合理选择编程语言)。
答案 0 :(得分:5)
我认为portaudio就是你所需要的。 从控制台应用程序中读取mike是一个10行C文件(请参阅portaudio distrib中的专利)。
答案 1 :(得分:5)
Mac OS X中音频开发的主要框架是Core Audio;它是所有音频I / O的基础。如果你想要一个简化的API用于常见任务,可以使用音频工具箱,音频队列服务,QuickTime和QTKit之上的层。
要抽取样本流,您可能想要使用Audio Queue Services; AudioQueueNewInput
功能将设置PCM数据的记录并将其传递给您提供的回调。
在Mac上,/Developer/Examples/CoreAudio/SimpleSDK
中有一组核心音频示例,其中包括音频队列服务录制API的使用(AudioQueueTools中的AQRecord)。
答案 2 :(得分:2)
Apple提供reading and writing audio data的示例代码。此外,Audio section of the Apple Developer site中还有很多有用的信息。