RPScreenRecorder stopRecording块没有被调用

时间:2017-09-13 13:59:29

标签: ios swift ios11 replaykit

我搜索得足够多但未能得到解决方案。

我正在使用ReplayKit来记录我的应用程序的屏幕。我已经开始通过调用

来录制屏幕
let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.startRecording() { error in 
    if let error = error {
        self.showScreenRecordingAlert(message: error.localizedDescription)
    }
}

当我按下stopRecord按钮时,我正在呼叫

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

但我遇到的问题是,程序控件没有进入stopRecording块内。 当我在做po sharedRecorder.isRecording时,它总是返回false。 我已经做了我所知道的一切,但未能得到解决方案。

2 个答案:

答案 0 :(得分:1)

运行XCode 9.4.1并在iOS 11.4.0上构建时遇到了这个问题。将手机升级到iOS 11.4.1修复了该错误。我不确定XCode版本中的差异是根本原因还是11.4.0刚刚被破坏。

答案 1 :(得分:0)

如果您的代码有上述问题,我已经找到了解决方案。

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

如果您在模拟器上运行您的应用,则上述块将不会调用,因此请使用真实设备进行测试,然后上述方法肯定会调用。

谢谢。