Web サイトのユーザビリティをテストしており、ネイティブ アプリで 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. レコーダー機能の前」) を出力する以外は何も起こりません。他のログステートメントは表示されず、ボタンで有効なステータスを切り替えることもできません。
ステートメントをヒットしたために IBAction が接続されていることはわかっていますが、stopRecordingWithHandler を起動できない理由はわかりません。
iOS 9.3 を実行している iPad Pro 9.7 インチでこれをテストしています。
WKWebView を記録しようとすることと関係があるのではないかと考え始めていますが、これが問題である場合はエラーが発生すると思います。
どんな助けでも大歓迎です:)