我正在开发一个具有屏幕捕获功能的应用程序。
ReplayKit 非常简单,而且效果很好,但是当我多次测试它录制时,它突然录制失败。
当它失败时,它只会在预览视图上显示一个空白的黑色视频。没有崩溃,没有错误信息。
我对自己的代码有疑问(尽管 ReplayKit 的实现非常简单),所以我尝试使用来自这里的简单示例代码 https://code.tutsplus.com/tutorials/ios-9-an-introduction-to- replaykit--cms-25458 发现问题仍然存在。
我找到了这个 Q&A 并尝试在开始新录制之前丢弃录制,但它没有用。 https://forums.developer.apple.com/thread/24613
我还发现,虽然它在第一次尝试时录制失败(我的意思是在启动应用程序之后),但在第二次尝试时成功。
所以我猜我的系统已经耗尽了某种系统范围的资源,并且只在录制或类似的东西之后才进行清理,但我不知道详细研究,因为 ReplayKit 是如此封闭,只提供对其数据的访问非常有限。
我做的唯一不正常的事情是,我做了一个实验,直接用这段代码检索视频数据。我这样做了很多次,所以如果这段代码有问题,影响可能会很大。
[[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
NSURL* screenCaptureVideoURL = [previewViewController valueForKey:@"movieURL"];
[self saveCaptureVideoToCameraRoll:screenCaptureVideoURL]; // My own routine to save the video to camera roll
}];
还有其他人面临同样的问题吗?有什么解决办法吗?
任何信息表示赞赏。谢谢。