为Mac音频队列服务选择输入麦克风?

6

我目前正在使用Mac OS X Audio Queue Services API进行音频录制和声音分析。默认麦克风输入工作正常。

如果有多个麦克风插入到Mac上(USB、耳机插孔等),是否有一种程序化的方法来枚举和选择要在应用程序中用于音频输入的麦克风?(例如,不必将用户发送到系统偏好设置面板,这可能会影响用户的其他音频应用程序。)如果是这样,应使用哪些API来选择麦克风输入。

3个回答

3
我认为不行,因为AQ是硬编码为使用默认输入的(据我所知)。 AQ相当有限,只有iOS通过AutoSessions提供更多控制。但是,您可以使用AUHAL从任意设备录制:http://developer.apple.com/library/mac/#technotes/tn2091/_index.html
您不需要上面的第4个列表,因为您将使用所选择设备的AudioDeviceID(可能通过使用AudioObjectGetPropertyDataSize获取设备列表并选择要使用的设备)。
顺便说一句:如果您觉得这太麻烦,您可能仍然可以使用您的代码设置kAudioHardwarePropertyDefaultInputDeviceAudioHardwareSetProperty - 这不是您想要的,但肯定会少些工作...

3

我还没有机会在我的Mac上使用另一个麦克风输入来检查这个答案,但它看起来还不错。 - hotpaw2

0
如果您设置音频队列从默认输入设备读取,则它将从在“系统偏好设置->声音->输入”选项卡中选择为默认的麦克风读取。

系统偏好设置具有全局影响,不仅仅是我的音频应用程序。 - hotpaw2

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