我正在开发一个带有屏幕捕捉功能的应用程序。
ReplayKit非常简单,而且工作得很好,但是当我多次测试它时,它突然失败了。
当它失败时,它只是在预览视图上显示一个空的黑色视频。没有崩溃,没有错误信息。
我对我自己的代码有疑问(尽管ReplayKit的实现非常简单),所以我尝试从这里开始使用一个简单的示例代码,https://code.tutsplus.com/tutorials/ios-9-an-introduction-to-replaykit--cms-25458发现这个问题仍然存在。
我已经找到了这个问答,并试图在开始新的录音之前丢弃录音,但它没有工作。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
}];还有其他人面临同样的问题吗?有什么解决办法吗?
任何信息都将不胜感激。谢谢。
发布于 2017-02-14 04:42:15
我也遇到了类似的问题,结果发现使用AVPlayer是在预览控制器上返回黑色屏幕的原因。我认为这可能是一个DRM特性,而不是replayKit的一个bug,因为文档中提到您不能记录AVPlayer内容。
你在用AVPlayer做什么吗?
https://stackoverflow.com/questions/41953996
复制相似问题