我正在尝试创建语音转文本功能,但收到错误:
Initializer for conditional binding must have Optional type, not 'AVAudioInputNode'
guard let inputNode = audioEngine.inputNode else {
fatalError("Audio engine has no input node")
}
AVAudioEngine
的 inputNode
属性不是可选的。当首次访问 inputNode 时,音频引擎会按需创建一个单例。它不能为零,因此守卫没有意义。
因此,只需拆下防护罩并按原样使用
audioEngine.inputNode
即可。不可能是nil
。
在使用之前,您仍然必须确保
inputNode
已连接到某个东西:
检查输入节点的输入格式(具体是硬件 格式)用于非零采样率和通道数以查看输入 已启用。
(来自苹果文档)
// 已针对 Swift 5 进行更新
做出声明。
let node = audioEngine.inputNode
然后您就可以使用它,而不会有任何可选链的风险。
node.outputFormat(forBus: 0)
node.removeTap(onBus: 0)