iOS ReplayKit 錄屏 框架的使用

在需要使用錄屏的 地方 引入 頭文件 #import <ReplayKit/ReplayKit.h>

添加代理 RPPreviewViewControllerDelegate

因為 iOS 9.0 以下 不能使用此框架 , 而且模擬器 也不能使用

所以在使用之前需要判斷?

if ([RPScreenRecorder sharedRecorder].available) {

}else{

NSlog(@"該設備不支持錄屏");

}


// 開啟錄屏

// 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 以后 開啟錄屏 的方法改變了, 需要判斷一下


/// 結束錄屏

[[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {

if (error) {

NSLog(@"error: %@", error);

}else{

NSLog(@"結束錄屏");

if (previewViewController) {

//設置預覽頁面到代理

previewViewController.previewControllerDelegate = self;

[self presentViewController:previewViewController animated:YES completion:nil];

}

}

}];


#pragma mark -- 回放預覽界面的代理方法

- (void)previewControllerDidFinish:(RPPreviewViewController *)previewController {

//用戶操作完成后,返回之前的界面

[previewController dismissViewControllerAnimated:YES completion:nil];

}


// 注意: 因為開啟錄屏的時間可能會有好幾秒, 需要注意

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容