2

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 输入和输出设备。

4

0 回答 0