Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RPScreenRecorder stopRecording block not getting called

I have searched enough but failed to get a solution.

I am using ReplayKit to record the screen of my app. I have started recording the screen by calling

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.startRecording() { error in 
    if let error = error {
        self.showScreenRecordingAlert(message: error.localizedDescription)
    }
}

When I am pressing the stopRecord button I am calling

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording { previewViewController, error in 
    if let error = error {
        self.showScreenRecordingAlert(message : error.localizedDescription)
        return
    }
}

But the issue that I am facing is, the program control does not enter inside the stopRecording block. When I am doing po sharedRecorder.isRecording, it always returns false. I have done everything I know but failed to get a solution.

like image 949
iPeter Avatar asked Sep 13 '17 13:09

iPeter


Video Answer


2 Answers

If you having this above issue with your code i have found the solution for this.

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording { previewViewController, error in 
if let error = error {
    self.showScreenRecordingAlert(message : error.localizedDescription)
    return
}}

Above Block will not call if you running your app on simulator so please use real device to test then above method will call definitely.

Thank you.

like image 198
Hardik Vyas Avatar answered Oct 05 '22 09:10

Hardik Vyas


Just had this issue running XCode 9.4.1 and building onto iOS 11.4.0. Upgrading the phone to iOS 11.4.1 fixed the bug. I'm not sure if the difference in XCode versions is the root cause or if 11.4.0 was just broken.

like image 31
Laser Avatar answered Oct 05 '22 11:10

Laser