我正在玩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
}