(Swift)条件绑定的初始化程序必须具有Optional类型,而不是' AVAudioInputNode'

时间:2017-09-24 16:38:58

标签: xcode conditional optional speech avaudioengine

我正在尝试创建一个语音文本功能,我收到错误:

Initializer for conditional binding must have Optional type, not 'AVAudioInputNode'

guard let inputNode = audioEngine.inputNode else {
        fatalError("Audio engine has no input node")
    }

1 个答案:

答案 0 :(得分:11)

AVAudioEngine' inputNode属性不是可选的。首次访问inputNode时,音频引擎会根据需要创建单例。这不可能是零,因为这个后卫没有意义。

所以,只需删除警卫并按原样使用audioEngine.inputNode即可。它不能是nil

在使用之前,您仍需确保inputNode与某些内容相关联:

  

检查输入节点的输入格式(特别是硬件   格式)用于非零采样率和通道计数以查看是否输入   已启用。

(来自Apple的文档)