在Mac上有简单的音频输入API吗?

11
我想从Mac的线路输入或内置麦克风中提取PCM样本流,并进行一些实时分析(精确的性质与此问题无关,但它可以是FFT,也可以是每隔一段时间对样本级别进行基本统计分析等)。
什么是最适合这种需求的?编写一个AudioUnit只是将声音传递并偶然地将其传递到某个地方进行分析?编写一个JACK感知应用程序,并找出如何使其与JACK服务器一起播放?Ecasound?
这是一个简单的API驱动下的廉价概念性爱好项目(其次是合理选择的编程语言)。
3个回答

6
Mac OS X中音频开发的主要框架是Core Audio; 它是所有音频I/O的基础。如果您想要一个简化的API来完成常见任务,可以使用Audio Toolbox、Audio Queue Services、QuickTime和QTKit等顶层层。
如果只是想获取一串样本流,可能最好使用Audio Queue Services; AudioQueueNewInput函数将设置PCM数据的记录并将其传递给您提供的回调函数。
在您的Mac上,有一组Core Audio示例位于/Developer/Examples/CoreAudio/SimpleSDK中,其中包括使用(AudioQueueTools中的AQRecord)音频队列服务记录API的用法。

嗨,Chris。Audio Queue Services确实提供了一个漂亮、干净的API。我最终选择了portaudio来完成这个项目以实现Tiger兼容性,但一直在羡慕AQRecord。 - Erin Dees

5
我认为你需要使用portaudio。 从控制台应用程序中读取麦克风是一个只有10行的C文件(在portaudio distrib中可以看到patests)。

这是一个通过麦克风录制音频并将其保存到文件的示例链接:http://portaudio.com/docs/v19-doxydocs/paex__record_8c.html - W.K.S

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接