如何解决在 AudioKit 5 (macOS) 中设置音频单元设备
以前版本的 AudioKit 有 AKMicrophone.setDevice(_:)
,但由于 AKMicrophone
在 v5 中被删除,从默认设备(在 macOS 上)以外的设备获取输入的正确方法是什么?
这是我到目前为止所尝试的(使用有效的设备 ID 调用地图,我确信):
func map(in: AudioDeviceID) {
let engine = AudioEngine()
let inUnit = engine.avEngine.inputNode.audioUnit!
setDevice(for: inUnit,to: `in`)
engine.output = engine.input
try! engine.start()
}
private func setDevice(for unit: AudioUnit,to id: AudioDeviceID) {
var deviceId = id;
let err = AudioUnitSetProperty(unit,kAudioOutputUnitProperty_CurrentDevice,kAudioUnitScope_Global,&deviceId,UInt32(MemoryLayout<AudioDeviceID>.size))
if (err != noErr) {
print(err)
assert(false)
}
}
但是当它调用 engine.start()
时它崩溃了:
2021-02-12 01:02:27.304545-0600 Roundabout[24616:587679] [avae] AVAEInternal.h:88 required condition is false: [AVAudioEngineGraph.mm:1408:Initialize: (IsFormatSampleRateAndChannelCountValid(outputHWFormat))]
删除 setDevice
呼叫有效,但它只是通过默认麦克风,这不是我想要的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。