系统自带录屏功能开发
1.实现介绍
录屏功能开发是systemUi中实现,主要有以下类:
(1)ScreenRecordActivity该Activity负责录屏相关权限申请,倒计时UI显示,录屏参数初始化,绑定录屏服务等功能。
在倒计时结束开始录屏时ScreenRecordActivity会被隐藏在后台并不会显示在最近任务列表中,如果关闭录屏后ScreenRecordActivity也不会被finish因为该Activity是singleInstance模式,等到下一次开启录屏功能时只要将该Activity重新显示到前台即可。如果因为其他异常情况被kill掉下次启动则会重新开启。
(2)ScreenRecordService是一个service服务ScreenRecordActivity启动后会绑定该service。ScreenRecordService主要功能是提供录屏相关接口(开始录屏,关闭录屏),监听录屏状态,提供录屏悬浮窗。
(3)ScreenUtil该类是用来封装各类接口为ScreenRecordActivity和ScreenRecordService服务。
(4)RecordScreenTitle在systeUi中录屏按钮该类继承QSTileImpl<BooleanState>
通过获取录屏状态更新录屏按钮和状态,实现点击事件监听。
(5)RecordScreenControllerImplimplementsRecordScreenController通过类名可以看出这只是一些事件处理的封装。
2.功能介绍
录屏功能主要有以下几个功能:
1.录屏启动,录屏关闭,如下图所示:
开启录屏:下拉托盘第二页显示,展开下拉托盘-》点击录屏图标即可开始录屏,如果已经是在录屏状态下,录屏图标变为关闭图标,可以点击关闭图标结束录屏功能。
2.录屏启动倒计时,如下图所示:
点击录屏后跳转到录屏倒计时界面,倒计时时间为3秒,倒计时结束界面跳转到后台调用service录屏方法开始真正录屏,更新当前状态为录屏。如果在倒计时界面按back,home键则会取消录屏操作。
3.录屏悬浮窗显示:
录屏倒计时结束后启动录屏,并在service中添加一个悬浮窗,该悬浮窗初始位置为屏幕左上角,包括录屏时间录屏状态和结束录屏按钮,可以拖拽窗口到界面任何位置,点击窗口结束录屏。