iOS语音-audioEngine inputNode抛出Mach消息超时错误

时间:2019-01-15 04:27:53

标签: ios swift xcode avaudioengine

我正在玩iOS的语音识别,并在Info.plist中添加了麦克风使用请求。录制时,该应用会显示一个弹出窗口,用于按预期请求访问权限

MyApp would like to access the microphone

但是,如果我等待几秒钟以上才能响应,则应用程序将崩溃并显示错误消息: RPCTimeout.mm:55:_ReportRPCTimeout:Initialize:Mach message timeout。显然陷入僵局。现在正在中止。

导致崩溃的代码是let node = audioEngine.inputNode

let node = audioEngine.inputNode 

let recordingFormat = node.outputFormat(forBus: 0)

node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in
    self.request.append(buffer)
}

我做了一些研究,解决此错误的常见方法是确保Mac上的音频设置已设置为使用内置扬声器进行输入和输出,而我已经拥有了。

如果我在如下所示的节点上设置防护,则XCode会引发错误:类型'AVAudioInputNode'的值没有成员'inputNode'

guard let node = audioEngine.inputNode.inputNode else {
    return
}

0 个答案:

没有答案