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

Nia*_*dle 14 xcode conditional speech optional avaudioengine

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

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

guard let inputNode = audioEngine.inputNode else {
        fatalError("Audio engine has no input node")
    }
Run Code Online (Sandbox Code Playgroud)

joe*_*ern 12

AVAudioEngineinputNode财产不是可选的.首次访问inputNode时,音频引擎会根据需要创建单例.它不能是零,因为这样,后卫没有意义.

所以,只需移除防护装置并按audioEngine.inputNode原样使用即可.它不可能nil.

inputNode在使用之前,您仍需确保连接到某些内容:

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

(来自Apple的文档)