iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(1)

前面讲了安卓设备上录屏功能的编程实现,我们现在来说一下在iOS设备上如何编写录屏功能。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(2)

苹果公司在wwdc15上公布了ReplayKit,这就意味着在iOS9及以后的版本上,我们都可以使用这个工具包开发录屏功能了。本期也只讨论这一部分,也就是说对于iOS8及其以前版本的录屏开发暂时不做讨论。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(3)

设想一下,你的录屏程序需要一个开始按钮,结束按钮,状态显示,也可能有个播放按钮。这是UI部分。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(4)

然后你会考虑要不要录制麦克风的声音,所以需要一个Switch按钮。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(5)

【界面设计】

因为iOS 设备有多个尺寸,因此你会考虑自动适应的窗口布局。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(6)

【引入ReplayKit】

这一部分几乎没有不费吹灰之力。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(7)

【录像】

使用RPScreenRecorder获取录制对象。

定义一个变量标示是否正在录制。

启动录像以后,首先检测录制对象是否有效,不然的话,操作无效对象会让你的程序崩溃。

是否录制麦克风通过这个属性isMicrophoneEnabled来设置。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(8)

准备好用来存储视频的路径,再加上视频格式生成一个AVAssetWriter对象,然后通过制定视频参数生成一个AVAssetWriterInput对象,并添加到上面的AVAssetWriter中,接下来直接调用录制对象的startCapture接口进行录像,在返回函数中,第一个参数是视频数据,第二个数据类型,通过判断数据类型为video,并用上面生成的AVAssetWriter对象进行初始判断并存写视频数据。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(9)

停止录像的话就调用stopCapture接口。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(10)

此时,调用上面AVAssetWriterInput对象的markAsFinished接口,再调用AVAssetWriter对象的finishWriting接口,然后,调用PHPhotoLibrary对象的performChanges接口,在接口返回中,调用PHAssetChangeRequest静态方法creationRequestForAssetFromVideo来存储视频文件。

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(11)

至此,这部分iOS 上的录屏工作就告一段落了。

咱们下期再见。谢谢关注。

感谢鼓励丁哥,关注丁哥,让丁哥有机会为您提供更好的内容:

Youtube:

https://www.youtube.com/channel/UCocjIjAfjq-JaNYPQRPcjUQ

微博:

@丁哥开讲

知乎:

https://www.zhihu.com/people/jetding-33

今日头条:

https://www.toutiao.com/c/user/57991325950/#mid=1581392745118733

iphone录屏设计教程(五分钟内学会iOS设备上录屏的编程实现)(12)

,