在 Android 中实现 App 在后台录屏主要需要使用到 MediaProjection API。

MediaProjection API 是 Android 5.0(API Level 21)引入的新特性,用于捕获屏幕内容并输出到文件或流中。

下面是一个简单的示例代码,演示如何使用 MediaProjection API 在后台录屏:

  1. 定义一个 Service 用来启动和管理录屏功能:
public class RecordService extends Service {private MediaRecorder mMediaRecorder;@Overridepublic void onCreate() {super.onCreate();createMediaRecord();}@Overridepublic IBinder onBind(Intent intent) {return null;}private void createMediaRecord() {mMediaRecorder = new MediaRecorder();int width = Resources.getSystem().getDisplayMetrics().widthPixels;int height = Resources.getSystem().getDisplayMetrics().heightPixels;MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);Intent permissionIntent = mediaProjectionManager.createScreenCaptureIntent();startActivityForResult(permissionIntent, 1);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == 1 && resultCode == RESULT_OK) {MediaProjection mediaProjection = ((MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE)).getMediaProjection(resultCode, data);VirtualDisplay virtualDisplay = mediaProjection.createVirtualDisplay("ScreenCapture",width, height, getResources().getDisplayMetrics().densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,mMediaRecorder.getSurface(), null, null);mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);mMediaRecorder.setOutputFile(getExternalFilesDir(Environment.DIRECTORY_MOVIES)+ "/" + System.currentTimeMillis() + ".mp4");mMediaRecorder.setVideoSize(width, height);mMediaRecorder.setVideoFrameRate(30);try {mMediaRecorder.prepare();} catch (IOException e) {e.printStackTrace();}mediaProjection.registerCallback(new MediaProjection.Callback() {@Overridepublic void onStop() {super.onStop();stopRecording();}}, null);mMediaRecorder.start();}}private void stopRecording() {mMediaRecorder.stop();mMediaRecorder.release();mMediaRecorder = null;Toast.makeText(this, "录制完成", Toast.LENGTH_SHORT).show();stopSelf();}
}
  1. 在 AndroidManifest.xml 文件中注册该 Service:
<application><service android:name="com.example.RecordService"/>
</application>
  1. 在 App 中启动该 Service,即可在后台进行录屏:
Intent intent = new Intent(this, RecordService.class);
startService(intent);

需要注意的是:在 Android 10 及以上版本中,需要为 App 授予「录制屏幕」权限才能正常使用 MediaProjection API,否则会出现崩溃等异常。

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。

相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集


二、源码解析合集

三、开源框架合集

欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓

Android 如何实现App在后台录屏相关推荐

  1. Android性能优化:定性和定位Android图形性能问题——以后台录屏进程为例

    原文链接:https://juejin.cn/post/7096288511053004830 作者github:https://github.com/NasdaqGodzilla 简介 发现.定性与 ...

  2. Android之禁止APP截图、录屏

    为了安卓APP的安全,特殊需求时设置当前页面禁止系统截屏.录制,例如开发漫画APP. 代码: @Overrideprotected void onCreate(Bundle savedInstance ...

  3. 后台录屏、应用外录屏、跨应用录屏、直播屏幕、录屏扩展(ios)

    后台录屏.应用外录屏.跨应用录屏.直播屏幕.录屏扩展(ios):https://ext.dcloud.net.cn/plugin?id=8149

  4. android+录像中截图软件下载,录屏截图大师app

    录屏截图大师app是一款专业录屏软件,不少用户可能会有使用手机录屏的需求,尤其是在手机内置没有录屏功能的时候,这款软件就非常值得大家考虑,支持自定义设置录屏的大小和画质,还没有水印,还支持后期的简单编 ...

  5. mac android 录屏软件下载,苹果录屏app下载 苹果录屏 for Android V2.1.3 安卓手机版 下载-脚本之家...

    苹果录屏是一款不错的手机录屏软件,该软件能帮助你录制流畅清晰视频,实现屏幕内容实时同步录制,录制视频流畅清晰不卡顿,需要的朋友可以下载使用. 应用介绍 苹果录屏,是一款免费屏幕录制软件,能帮助你录制流 ...

  6. Android、iOS如何实现自动化录屏,超实用!

    阅读本文大约需要1分钟. 背景 在做移动端自动化测试的过程中,有很多场景需要录制设备的屏幕视频,比如Crash现场记录,启动/页面加载耗时类的评测等,那么如何实现Android和iOS设备的屏幕录制呢 ...

  7. android手机截图gif,bash 一键录屏 Android 生成 gif 文件脚本

    目的 编写 bash 脚本, 实现一行命令得到 Android 手机录制屏幕 gif 动图文件. 博主使用 ubuntu 系统, shell 为 bash. 这个脚本也可以用在 mac 系统上. 听说 ...

  8. Android开发之在软件内录屏录画面,直接CV就能用

    关于Android开发录屏的资料,真的是很难找到那种拿来就能用的,不是付费专栏就是要积分才能下载源码,起不到任何帮助.我需要的是录制软件画面,找到的几个例子都是录制时返回桌面,然后弹出小窗口开始录制桌 ...

  9. Android 11.0 下拉状态栏录屏去掉弹窗直接录屏

    目录 1.概述 2.下拉状态栏录屏去掉弹窗直接录屏的核心代码

最新文章

  1. mxnet中ndarray*ndarray用来作为掩码进行与运算的用法
  2. csharp:Learn how to post JSON string to generic Handler using jQuery in ASP.Net C#.
  3. php系统导出数据到excel,php导出大量数据到excel时,有哪些比较好的处理方法?...
  4. (转)python协程2:yield from 从入门到精通
  5. MATLAB实战系列(二十二)-matlab三维图形绘制案例最全集锦(毕设和数学建模必看)
  6. java gc回收机制种类_JAVA的垃圾回收机制(GC)
  7. (操作系统题目题型总结)第四章:存储管理
  8. AFNnetworking详解
  9. python入门经典100例-【python】编程语言入门经典100例--37
  10. e-r 概念模型 关系模型_数据库数据模型(分类、三要素、概念)
  11. 基于 snowNLP的微博评论数据情感分析
  12. 自学python入门训练营 李笑来_如何看待李笑来发布的Python教程《自学是门手艺》?...
  13. ARM开发7.5.1 基础实训( 5 ) 4×4 矩阵键盘和 2 路 LED 显示系统( 1)--LPC21XX
  14. SAP中检查货币代码
  15. 机器学习总结之——机器学习项目完整流程
  16. 程序员进阶必备--写文档
  17. 时序图神经网络总结(1)
  18. 移动硬盘明明有空间显示内存不足,删除部分空间后仍显示不足的问题解决
  19. 几个实际工作中测出来的web安全漏洞
  20. 小程序发送 request请求失败 提示不在合法域名列表中的解决方法

热门文章

  1. C语言中的字符串结束符'\0'
  2. 回头看看,是否会有更好的人与物……
  3. Storm DRPC 使用
  4. 邮件营销之bounce类型
  5. 3DSlicer简介与安装教程
  6. C++中负数的二进制表示
  7. 这些天的生活挺无聊的!
  8. win7 远程桌面 不用域账户登录
  9. VSIX 插件右键菜单
  10. 这些坑你都趟过吗?研发经验一箩筐,从此再也不入坑!