在需要使用录屏的 地方 引入 头文件 #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];

}

// 注意: 因为开启录屏的时间可能会有好几秒, 需要注意

iOS ReplayKit 录屏 框架的使用的更多相关文章

  1. Android 和 iOS 实现录屏推流的方案整理

    一.录屏推流实现的步骤 1. 采集数据 主要是采集屏幕获得视频数据,采集麦克风获得音频数据,如果可以实现的话,我们还可以采集一些应用内置的音频数据. 2. 数据格式转换 主要是将获取到的视频和音频转换 ...

  2. ios手机录屏软件哪个好

    苹果手机中的airplay镜像,是苹果手机系统的一大特色,可以轻松把手机屏幕投射电脑,这个功能使苹果手机相较安卓手机投屏会更加轻松,那么如何实现苹果手机投射电脑屏幕?下面小编便来分享ios手机录屏软件 ...

  3. iOS的录屏功能

    iOS的录屏功能其实没什么好说的,因为网上的教程很多,但是网上的Demo无一例外几乎都有一个bug,那就是iPad上会出现闪退,这也体现了国内的教程文档的一个特点,就是抄袭,教程几乎千篇一律,bug也 ...

  4. iOS模拟器录屏转gif神器

    我发现苹果的Quick Time Player用来录屏就挺好用的.打开后选择 文件 - 新建屏幕录制 - 点击录制按钮, 划出要录制的模拟器窗体 - 点击录制就可以了. 录制成mov格式还要再转成gi ...

  5. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

  6. Yosemite 给 iOS 录屏

    [Yosemite 给 iOS 录屏] Mac 升级到Yosemite后,支持iOS屏幕录制.把Mac和iPhone用数据线相连.打开QuickTime Player,新建一个影片. 从摄像头源中选择 ...

  7. 录屏状态监听之防录屏 - iOS

    继之前接到电话.短信和截屏监听需求之后,在 iOS 11.0 系统之上新增了屏幕录制的新功能玩法,所以也随之迎来了新的屏幕录制监听的需求,即防录屏功能监听 ... 通过官方文档得知 capturedD ...

  8. iOS实现组件录屏视频不可见,用户肉眼可见(类似系统键盘效果)

    系统键盘在密码框输入时,如果用户开启录屏,键盘在录屏得到的视频里会不可见,但是用户在录屏时却能看到. 为了实现这个效果,利用UItextfield在录屏下视频不可见的特性,将实现这一效果的私有UIvi ...

  9. iOS ReplayKit实时录制屏幕实现方案的细节记录

    项目有个需求,需要把ios设备上的操作画面实时传输出去,也就是类似推流手机直播画面的方案. 一番调研后发现在ios中,我们可以通过ios自带ReplayKit框架实现. 关于ReplayKit的讲解, ...

随机推荐

  1. GIT好文搜藏

    git图解:代码区域总结 https://zhuanlan.zhihu.com/p/20175919 git跟传统的代码管理器(如:svn)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使 ...

  2. luogu P3201 [HNOI2009]梦幻布丁

    传送门 先考虑暴力,显然每次是把一个位置集合和另一个集合合并,同时维护答案,合并的过程中如果两个集合每有一对元素相邻,答案就减1 优化暴力的话,说到合并,怎么能不想起启发式合并呢?每次把一个大小小的集 ...

  3. C 捕获 lua 异常错误

    参考文章https://blog.codingnow.com/2015/05/lua_c_api.html , , )) { printf("file=%s, func=%s, line=% ...

  4. Binary Tree HDU - 5573 (思维)

    题目链接: B - Binary Tree  HDU - 5573 题目大意: 给定一颗二叉树,根结点权值为1,左孩子权值是父节点的两倍,右孩子是两倍+1: 给定 n 和 k,让你找一条从根结点走到第 ...

  5. shiro--认证部分

    1.1 什么是shiro shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证.用户授权. spring中有spring security (原名Acegi),是一个权限框架, ...

  6. 省市联动-获取资源文件xml 获取nodes的方法要学会

    try { SAXReader reader = new SAXReader(); InputStream input = this.getClass().getResourceAsStream(&q ...

  7. android checkBox选中与取消

    checkView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO ...

  8. [转] 指定进程运行的CPU

    转自:https://www.cnblogs.com/liuhao/archive/2012/06/21/2558069.html coolshell最新的文章<性能调优攻略>在“多核CP ...

  9. Leetcode - 309. Best Time to Buy and Sell Stock with Cooldown

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  10. JSLint报错翻译

    “Missing semicolon.” : “缺少分号.”,“Use the function form of \”use strict\”.” : “使用标准化定义function.”,“Unex ...