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 -----------------
iOS 屏幕录制功能的更多相关文章
- iOS 屏幕录制实现
iOS 屏幕录制实现 目录 iOS 屏幕录制实现 录屏API版本变化 App内部录制屏幕 录音麦克风声音 App内部录屏直播 Bonjour APP广播端实现 广播端App(直播平台)的实现 iOS1 ...
- 百万级日活 App 的屏幕录制功能是如何实现的
Android 从 4.0 开始就提供了手机录屏方法,但是需要 root 权限,比较麻烦不容易实现.但是从 5.0 开始,系统提供给了 App 录制屏幕的一系列方法,不需要 root 权限,只需要用户 ...
- anyRTC iOS端屏幕录制开发指南
一. 概述 实现直播过程中共享屏幕分为两个步骤:屏幕数据采集和流媒体数据推送.前对于 iOS 来说,屏幕采集需要系统的权限,受制于iOS系统的限制,第三方 app 并没有直接录制屏幕的权限,必须通过系 ...
- 基于最简单的FFmpeg的AVDevice抽样(屏幕录制)
=====================================================基于最简单的FFmpeg的AVDevice样品文章: 最简单的基于FFmpeg的AVDevic ...
- 【录教程必备】推荐几款屏幕录制工具(可录制GIF)
我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...
- 最简单的基于FFmpeg的AVDevice例子(屏幕录制)
=====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDev ...
- 推荐几款屏幕录制工具(可录制GIF)
我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...
- 【转】【录教程必备】推荐几款屏幕录制工具(可录制GIF)
我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...
- Mac 屏幕录制Gif 制作 By-胡罗
一.视频录制 1)使用Mac系统自带的QuickTime进行屏幕录像 手动打开(如下图) 详细 Mac 基础教程:如何使用 Mac 系统原生的屏幕录制功能 相关快捷键 option+command+n ...
随机推荐
- HDU 4248 A Famous Stone Collector 组合数学dp ****
A Famous Stone Collector Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- Hibernate入门(四)—— 查询
一.Hibernate查询 1.Hibernate检索(查询)方式的分类 OID检索 :根据主键查询,get/load 对象导航检索 :通过一个对象获得其关联对象.[重点] Category cate ...
- PHP 经典算法
<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_s ...
- luogu P3065 first——trie树相关
题目描述 Bessie has been playing with strings again. She found that by changing the order of the alphabe ...
- BaseActivity
package com.glandroid.smssender; import android.content.DialogInterface; import android.content.pm.P ...
- Git简介、安装与配置
老规矩QAQ,先来简单介绍一下Git: Git是一个分布式版本控制系统,可以理解为是一个用于管理代码,控制版本,方便多人合作开发的一款工具. Git:分布式版本控制系统. SVN.CVS:集中式版本控 ...
- 微信小程序-scroll-view组件
<view class="section"> <view class="section__title">vertical scroll& ...
- (C#) 多线程访问int, bool 等值类型变量
参考: https://stackoverflow.com/questions/154551/volatile-vs-interlocked-vs-lock/154803
- Array inversion case
package basic.java; import java.util.Scanner; /* * 需求: * (1)键盘录入5个int类型的数据存储数组arr中 * (2)定义方法将arr数组中的 ...
- C语言写控制台互交界面
void show_menu() { //system("clear"); printf("---------------------\n"); printf( ...