如何在macOS / swift的AVAudioEngine中选择音频输入设备(mic)?

时间:2019-11-16 18:33:52

标签: swift macos microphone avaudioengine sfspeechrecognizer

是否可以在macOS上使用Swift在AVAudioEngine中选择输入设备?

用例:

我在macOS上使用SFSpeechRecognizer

我正在使用

将麦克风数据输入其中
private let audioEngine = AVAudioEngine()
:

let inputNode = audioEngine.inputNode
let recordingFormat = inputNode.outputFormat(forBus: 0)

inputNode.installTap( onBus: 0,  bufferSize: 1024,  format: recordingFormat )
{ (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
    self.recognitionRequest?.append( buffer )
}

audioEngine.prepare()
try audioEngine.start()

这将使用系统默认的麦克风。

我有一个外接USB麦克风,我想改用。我可以进入系统偏好设置->音频,并将默认输出设备设置为我的USB麦克风。然后它将起作用。但是,如果我断开麦克风并将其重新连接到另一个USB端口,则必须经历将其再次设置为默认值的过程。

为避免重复执行此操作,我想根据代码手动设置麦克风。

这可能吗?

编辑:我发现Set AVAudioEngine Input and Output Devices使用Obj-C。

0 个答案:

没有答案