我目前正在使用Mac Queue Services API进行音频录制和声音分析。使用默认麦克风输入时工作正常。
如果有多个麦克风插入Mac (USB、耳机插孔等),有没有办法以编程方式枚举和选择哪个麦克风用于应用程序中的音频输入?(例如,不必将用户发送到系统偏好面板,这可能会影响用户的其他音频应用。)如果是,应该使用哪些API来选择麦克风输入。
发布于 2011-12-29 22:35:44
要枚举可用的输入设备,请参阅我对AudioObjectGetPropertyData to get a list of input devices的回答。
确定要使用的输入设备后,可以将kAudioQueueProperty_CurrentDevice属性设置为该设备的UID。
发布于 2011-12-29 11:03:49
我担心,不是,因为AQ被硬编码为使用默认输入(据我所知)。AQ相当有限,只有iOS通过AutoSessions提供了更多的控制。但是,您可以使用AUHAL从任意设备进行录制:
http://developer.apple.com/library/mac/#technotes/tn2091/_index.html
您不需要上面的清单4,因为您将使用所选设备的AudioDeviceID (大概是通过使用AudioObjectGetPropertyDataSize获取设备列表并选择您想要的设备)。
如果你觉得这太多了,你可能仍然可以使用AudioHardwareSetProperty从你的代码中设置kAudioHardwarePropertyDefaultInputDevice --不是你想要的,但肯定是更少的工作……
发布于 2011-06-17 17:41:18
如果您将音频队列设置为从默认输入设备读取,则它将从在系统首选项->Soubd->输入选项卡中选择为默认的麦克风读取。
https://stackoverflow.com/questions/6184751
复制相似问题