先放地址: https://github.com/q8618889/ReplayKit-inAPP-NoExtension
iOS 获取屏幕已经在iOS10 以后 有完整的 框架 但是需要外部权限实现框架 获取视频数据 想要实现内部的在 app 录制视频 并保存在沙盒路径内 可使用方案
第一种 是一帧一帧 合成 最后加录音 合成到视频
第二种 获取框架 数据流 写入本地
第三种 完全按照框架流程系统权限去做 https://www.jianshu.com/p/3dbcc76a6bd8
第一种实现需要使用AVPlayer 的截图功能开定时器 每 0.1s 进行一次 屏幕截屏
优点:可指定录制区域 不需要其他处理
缺点 : cpu 占用太高 内存释放缓慢 卡顿 掉帧
坑:与webView 交互 会非常卡顿导致 webView 卡顿 cup 过高时 录制 同时也收到影响
(这类网上实现的比较多.demo,也比较多, 如果业务功能本身cpu 占用不高 的话可以尝试使用)
第二种 获取框架中的数据流 并写入本地
优点:cpu 占用非常少, 视频可控制清晰度.快捷.权限简单
缺点:录制区域是处过特殊处理的 view 将全部被录制其中.业务层UI不好分离 且只能录制在当前APP 内
坑:给系统录制权限是 超过几分钟就会重新弹出权限弹窗,(第一次录制录音可用,第二次录制时麦克风权限将消失(目前发现