我正在开发具有屏幕捕获功能的应用程序。ReplayKit无法记录
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
}];
是否还有其他人面临同样的问题?任何解决方案?
任何信息表示赞赏。 谢谢。
啊,是的!我正在使用AVPlayer。 录制时没有必要,所以我有点解雇了玩家,但我不确定这个实例是否真的被处置。我会检查的! 非常感谢! –
我检查了我的代码,发现我没有使用AVPlayer,但是我发现我使用的是AVCaptureVideoPreviewLayer。通过消除这个工作! –