ReplayKit 无法录制

ReplayKit fails to record

我正在开发具有屏幕捕获功能的应用程序。

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

}];

还有其他人面临同样的问题吗?有什么解决办法吗?

欢迎提供任何信息。 谢谢

我遇到了类似的问题,结果发现使用 AVPlayer 是预览控制器返回黑屏的原因。我认为这可能是 DRM 功能,而不是 replayKit 的 错误,因为文档提到您无法录制 AVPlayer 内容。

你在用 AVPlayer 做什么吗?