问题描述
从未输入 startRecording() 完成处理程序,即使显示了“允许在 $AppName 中进行屏幕录制”弹出窗口。偶尔会显示“允许在 $AppName 中进行屏幕录制”弹出窗口。当我删除应用程序、重新启动设备并对项目进行清理/构建时,也会发生这种情况。我正在使用带有 iOS 11 和 Xcode 9 的 iPad Air 2。
研究
这个问题在早期版本中似乎也是一个问题,请参见此处:replaykit startrecording 有时从不进入完成处理程序 我不同意关闭 WiFi 或拥有稳定的互联网连接可以解决这个问题,iOS 中也没有解决这个问题11.
这是我正在使用的代码:
@IBAction func recordButtonTapped(_ sender: UIButton) {
if !recorder.isRecording {
startRecording(sender)
} else {
stopRecording(sender)
}
}
private func startRecording(_ sender: UIButton) {
guard recorder.isAvailable else {
print("Recording is not available at this time.")
// Display UI for recording being unavailable
return
}
recorder.startRecording(handler: { (error) in
guard error == nil else {
print("There was an error starting the recording.")
print(error!)
return
}
print("Started Recording Successfully")
DispatchQueue.main.async {
sender.setTitle("Stop Recording", for: .normal)
sender.setTitleColor(.red, for: .normal)
}
})
}