在需要使用錄屏的 地方 引入 頭文件 #import <ReplayKit/ReplayKit.h>
添加代理 RPPreviewViewControllerDelegate
因為 iOS 9.0 以下 不能使用此框架 , 而且模擬器 也不能使用
所以在使用之前需要判斷?
if ([RPScreenRecorder sharedRecorder].available) {
}else{
NSlog(@"該設(shè)備不支持錄屏");
}
// 開啟錄屏
// iOS 10.0 以上
if (([UIDevice currentDevice].systemVersion.floatValue >= 10.0f)) {
[[RPScreenRecorder sharedRecorder]startRecordingWithHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"error: %@",error);
}else{
NSLog(@"開始錄屏");
}
}];
}else{
// iOS 10.0 以下
[[RPScreenRecorder sharedRecorder] startRecordingWithMicrophoneEnabled:YES handler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"error: %@",error);
}else{
NSLog(@"開始錄屏");
}
}];
}
// 因為 iOS 10 以后 開啟錄屏 的方法改變了, 需要判斷一下
/// 結(jié)束錄屏
[[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
if (error) {
NSLog(@"error: %@", error);
}else{
NSLog(@"結(jié)束錄屏");
if (previewViewController) {
//設(shè)置預(yù)覽頁面到代理
previewViewController.previewControllerDelegate = self;
[self presentViewController:previewViewController animated:YES completion:nil];
}
}
}];
#pragma mark -- 回放預(yù)覽界面的代理方法
- (void)previewControllerDidFinish:(RPPreviewViewController *)previewController {
//用戶操作完成后扯再,返回之前的界面
[previewController dismissViewControllerAnimated:YES completion:nil];
}
// 注意: 因為開啟錄屏的時間可能會有好幾秒, 需要注意