【问题标题】:Initializer for conditional binding must have Optional type, not 'AVAudioInputNode'条件绑定的初始化程序必须具有可选类型,而不是“AVAudioInputNode”
【发布时间】:2018-03-13 02:54:14
【问题描述】:

导致上述错误的原因以及如何解决?

func cancelRecording() {
        audioEngine.stop()
        if let node = audioEngine.inputNode {
            node.removeTap(onBus: 0)
        }
        recognitionTask?.cancel()
    }

【问题讨论】:

    标签: ios swift audio avaudioengine


    【解决方案1】:

    编译器告诉你不能使用 if let 因为它完全没有必要。您没有任何要解包的选项:audioEngine 不是可选的,inputNode 属性也不是可选的。 if let 专门用于解包选项。如果您想创建一个名为 node 的新常量,只需这样做:

    if let node = audioEngine?.inputNode {
       node.removeTap(onBus: 0)
    }
    

    【讨论】:

    • 先生,我想问你一些关于alexa语音服务的问题
    • @JhonDonCaylog 是的,请告诉 alexa 语音服务您想要什么?
    • 您是否尝试过将 alexa 语音服务集成到 ios 应用程序中?
    • 还没有,但你可以告诉我你面临的问题吗?
    • 我想将使用 api.ai 的 alexa 语音服务集成到 Ios App Sir 中。
    猜你喜欢
    • 2018-03-05
    • 2019-04-17
    • 2019-03-11
    • 2017-01-22
    • 2018-03-25
    • 2016-01-08
    • 2017-04-08
    • 2016-09-23
    • 1970-01-01
    相关资源
    最近更新 更多