iOS 屏幕录制功能
系统框架
#import <ReplayKit/ReplayKit.h> // 系统视频录制框架
声明协议
<RPPreviewViewControllerDelegate>
实现代码:
{ // notice // 在点击录制按钮后会弹出用户允许提示,分别为录制屏幕与音频、只录制屏幕与不允许。 //RepalyKit与AVPlayer不相互兼容,所以RepalyKit可能无法录制AVPlayer呈现的画面 //判断是否已经开始录制回放 if (sender.isSelected) { //停止录制回放,并显示回放的预览,在预览中用户可以选择保存视频到相册中、放弃、或者分享出去 [[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) { if (error) { NSLog(@"%@", error); //处理发生的错误,如磁盘空间不足而停止等 } if (previewViewController) { //设置预览页面到代理 previewViewController.previewControllerDelegate = self; [self presentViewController:previewViewController animated:YES completion:nil]; } }]; sender.selected = NO; return; } //如果还没有开始录制,判断系统是否支持 if ([RPScreenRecorder sharedRecorder].available) { NSLog(@"OK"); sender.selected = YES; //如果支持,就使用下面的方法可以启动录制回放 [[RPScreenRecorder sharedRecorder] startRecordingWithMicrophoneEnabled:YES handler:^(NSError * _Nullable error) { NSLog(@"%@", error); //处理发生的错误,如设用户权限原因无法开始录制等 }]; } else { NSLog(@"录制回放功能不可用"); } }
回放预览界面的代理方法
- (void)previewControllerDidFinish:(RPPreviewViewController *)previewController { //用户操作完成后,返回之前的界面 [previewController dismissViewControllerAnimated:YES completion:nil]; }
-------------------- over -----------------