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];

}

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM