0

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

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

}];

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

任何信息表示赞赏。谢谢。

4

1 回答 1

2

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

你有AVPlayer什么用吗?

于 2017-02-14T04:42:15.893 回答