我正在测试网站的可用性并在本机应用程序中使用 WKWebView。这样做的原因是我可以使用 COSTouchVisualizer 来显示触摸,并使用 RPScreenRecorder 来记录交互和与麦克风的“大声说话”。
我有以下 IBAction 来开始录制:
@IBAction func startRecordSession(sender: AnyObject) {
let recorder = RPScreenRecorder.sharedRecorder()
guard recorder.available else{
print("Cannot record the screen")
return
}
recorder.delegate = self
recorder.startRecordingWithMicrophoneEnabled(true) { (err) in
guard err == nil else{
if err!.code ==
RPRecordingErrorCode.UserDeclined.rawValue{
print("User declined app recording")
}
else if err!.code ==
RPRecordingErrorCode.InsufficientStorage.rawValue{
print("Not enough storage to start recording")
}
else{
print("Error happened = \(err!)")
}
return
}
print("Successfully started recording")
self.recordBtn.enabled = false
self.stopRecordBtn.enabled = true
}
}
这似乎与打印成功开始录制。
但是,当按下连接到 IBAction 以停止录制的按钮时,应运行以下代码:
@IBAction func stop() {
let recorder = RPScreenRecorder.sharedRecorder()
print("1. before the recorder function")// This prints
recorder.stopRecordingWithHandler{controller, err in
guard let previewController = controller where err == nil else {
self.recordBtn.enabled = true
self.stopRecordBtn.enabled = false
print("2. Failed to stop recording")// This does not prints
return
}
previewController.previewControllerDelegate = self
self.presentViewController(previewController, animated: true,
completion: nil)
}
}
但是除了打印出第一个日志(“1. before the recorder function”)之外,什么也没有发生。我没有得到其他日志语句,按钮也没有切换它们的启用状态。
我知道 IBAction 是由于命中语句而连接的,但不知道为什么我不能让 stopRecordingWithHandler 触发。
我正在运行 iOS 9.3 的 iPad Pro 9.7" 上对此进行测试。
我开始怀疑它是否与尝试记录 WKWebView 有任何关系,但我会想象如果这是问题所在,我会收到错误消息。
任何帮助将不胜感激 :)