AVAudioEngine
是否可以在 macOS 上使用 Swift 时选择输入设备?
用例:
我SFSpeechRecognizer
在 macOS 上使用。
要将麦克风数据输入其中,我正在使用
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 端口,我将不得不再次将其设置为默认值。
为避免重复执行此操作,我想通过代码手动设置麦克风。
这可能吗?
编辑:我发现使用 Obj-C 的Set AVAudioEngine 输入和输出设备。