Android截屏、录屏,适配AndroidQ以上

本文介绍了如何在Android 12设备上使用MediaProjectionManager, VirtualDisplay, AudioRecord, MediaCodec和MediaMuxer API进行屏幕录制。针对Android 10以上的隐私保护措施,如需要foreground service和显式通知,以及文件存储路径的改变进行了详细说明,并提供了AndroidManifest的权限配置、ScreenService的绑定过程以及截屏和录屏的具体操作。在解决Android 12的各种适配问题后,最终成功实现了截屏和录屏功能。" 89966224,5759947,动态加载第三方应用:插件化详解,"['Android开发', '插件框架', '组件化', '热更新', '应用解耦']
摘要由CSDN通过智能技术生成

        使用MediaProjectionManager,VirtualDisplay,AudioRecord,MediaCodec以及MediaMuxer等API实现屏幕录制功能。MediaProjectionManager是Android5.0出现的API,但是现在已经Android十几了,尤其Android10对隐私保护真的做的很多事情啊!获取屏幕必须要foreground service绑定显式通知;mediaProjection必须要在通知显示之后获取;文件结构也重新设计了,不能随意创建文件夹了,系统提供了一些可用的文件夹,保存在Android/data/包名路径下。

        在Android12的手机上写了个截屏、录屏的项目,遇到各种问题,解决完各种报错,终于运行起来了,先来看看效果吧!

 AndroidManifest权限配置

//截屏
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
//录屏,录屏需要保存视频文件和获取声音
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

AndroidManifest配置ScreenService

    <service android:name=".ScreenService"
            android:enabled="true"
            android:exported="true"
            android:foregroundServiceType="mediaProjection"/>

Activity获取MediaProjectionManager

projectionManager = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE);

Activity绑定ScreenService

    @Override
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值