是否可以在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。