项目地址

https://github.com/shark5/ScreenCapture 欢迎Star~~

Gradle 引用

compile 'com.shark:screencapture:1.0.0'

创建实例

ScreenCapture mScreenCapture = ScreenCapture.newInstance(this);

事件监听

mScreenCapture.setCaptureListener(new ScreenCapture.OnCaptureListener() {@Overridepublic void onScreenCaptureSuccess(Bitmap bitmap, String savePath) {Log.d(TAG, "onScreenCaptureSuccess savePath:" + savePath);}@Overridepublic void onScreenCaptureFailed(String errorMsg) {Log.d(TAG, "onScreenCaptureFailed errorMsg:" + errorMsg);}@Overridepublic void onScreenRecordStart() {Log.d(TAG, "onScreenRecordStart");}@Overridepublic void onScreenRecordStop() {Log.d(TAG, "onScreenRecordStop");}@Overridepublic void onScreenRecordSuccess(String savePath) {Log.d(TAG, "onScreenRecordSuccess savePath:" + savePath);}@Overridepublic void onScreenRecordFailed(String errorMsg) {Log.d(TAG, "onScreenRecordFailed errorMsg:" + errorMsg);}});

设置图片和视频保存路径

可不设置,即使用默认路径

mScreenCapture.setImagePath(Environment.getExternalStorageDirectory().getPath() + "/ScreenCapture/screen_capture/", "image_screen.png");
mScreenCapture.setRecordPath(Environment.getExternalStorageDirectory().getPath() + "/ScreenCapture/record/", "recording_screen.mp4");

开始截屏

if (mScreenCapture != null) {mScreenCapture.screenCapture();
}

开始录屏

if (mScreenCapture != null) {mScreenCapture.record();
}

权限相关

/*** Handle permission here which caused by MediaProjectionManager.createScreenCaptureIntent()* @param requestCode* @param resultCode* @param data*/@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {if (mScreenCapture != null) {mScreenCapture.onActivityResult(requestCode, resultCode, data);}}/*** Handle permission here. Like Manifest.permission.WRITE_EXTERNAL_STORAGE* @param requestCode* @param permissions* @param grantResults*/@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {if (mScreenCapture != null) {mScreenCapture.onRequestPermissionsResult(requestCode, permissions, grantResults);}}

最后记得cleanup

    @Overrideprotected void onDestroy() {super.onDestroy();if (mScreenCapture != null) {mScreenCapture.cleanup();mScreenCapture = null;}}

Android MediaProjection截屏与录屏(ScreenCapture Library 的使用)(二)相关推荐

  1. android 实现手机录屏功能,基于MediaProjection实现Android移动手机截屏和录屏功能

    Android软件应用经常要求实现截屏和录屏的功能,那么如何实现Android软件截屏和录屏功能呢?本文将介绍基于MediaProjection实现Android移动手机截屏和录屏功能. MediaP ...

  2. Android MediaProjection截屏录屏-适配AndroidQ以上版本

    工作中遇到截屏需求,首先想到的肯定是截图所在区域的控件,通过Canvas类将View绘制成一个Bitmap,之后是要显示还是保存都可以了.但是事实上还是有一些问题存在,已知有两个问题:①不能截取到状态 ...

  3. Android 音视频开发(六) -- Android Mediaprojection 截屏和录屏

    Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍照功能 Andro ...

  4. Android截屏和录屏Demo

    最近两天研究了一下安卓截屏和录屏功能的实现,基本的思路如下: 截屏:通过View绘制缓冲获得Bitmap,然后写到文件中,完成截屏的功能: 录屏:通过MediaRecorder进行video reco ...

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

    使用MediaProjectionManager,VirtualDisplay,AudioRecord,MediaCodec以及MediaMuxer等API实现屏幕录制功能.MediaProjecti ...

  6. android录屏弹窗,android视频截屏手机录屏实现代码

    本文介绍了android视频截屏&手机录屏实现代码,分享给大家,希望对大家有帮助 问题 在android中有时候我们需要对屏幕进行截屏操作,单一的截屏操作好解决可以通过activity的顶层v ...

  7. android视频截屏手机录屏实现

    问题 在android中有时候我们需要对屏幕进行截屏操作,单一的截屏操作好解决可以通过activity的顶层view DecorView获取一个bitmap,得到就是当前activity上面的全部视图 ...

  8. Android 关于禁止应用截屏和录屏

    APP有时候为了保护用户的隐私安全会禁止用户录屏和截屏,录入说视频交友类的app,金融类的app等 可以在app的onCreate方法中添加这么一段代码: @Overrideprotected voi ...

  9. android禁止录屏功能,react-native(安卓)项目中禁止截屏与录屏

    一.整个项目中禁止截屏与录屏 在android/app/src/main/java/com/your-app-name/MainActivity.java文件中的onCreate方法中添加如下代码即可 ...

  10. Android App保护用户隐私————禁止应用截屏或录屏

    引言 相信大家在使用某些平台应用的时候,都会有限制的规定. 通常情况下,录屏.截图软件都可以在手机的运行过程中进行录屏.截图,普通的平台也不会阻止录屏.截图软件运行. 但是在某些比较敏感的平台上面,有 ...

最新文章

  1. (C语言)一种简易记法:生成[a,b]范围内的随机整数
  2. 内存屏障在硬件层面的实现原理
  3. Netty4具体解释三:Netty架构设计
  4. linux安装 java jdk
  5. 【C/C++】变量做数组长度
  6. 给中国学生的第五封信 – 你有选择的权利
  7. 京东方计划为苹果iPhone 13供应6.06英寸OLED面板
  8. 设计一个60T数据仓库及大数据分析平台,医院数字化该怎么做?
  9. 21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)...
  10. vue三种常用获取input值方法
  11. ILSpy反编译工具之C#反汇编
  12. 关于常用序号的几点说明(数字序号顺序)
  13. 5000的台式计算机,预算5000的台式组装机配置清单_预算5000的台式组装机配置
  14. Chinese-ELECTRA ‘adam_m not found in checkpoint ‘
  15. web IDE theia-ide安装
  16. 基于Springboot的社区志愿者服务管理系统
  17. 揭秘Microsoft Windows LDM
  18. 小白到高级UI设计师,如何实现完美蜕变?
  19. CM系统应用源码分析与rom定制
  20. twrp双清勾选哪两个_免费读书app,我只留了这两个。

热门文章

  1. .net快速开发平台,learun敏捷开发框架
  2. xbox 手柄按键测试软件,unity中链接Xbox手柄设置及按键检测
  3. 阿里播放器使用Aliplayer
  4. 2021年广东省安全员A证第三批(主要负责人)考试内容及广东省安全员A证第三批(主要负责人)新版试题
  5. vs 2017 查看dll源代码
  6. 【计算机组成原理】内存与CPU的连接
  7. SAR空间自回归模型
  8. 嵌入式开发之交叉编译工具链制作
  9. 蓝湖 Figma 插件被下架了怎么办?蓝湖的替代品列表
  10. 数据结构顺序表基本操作(C/C++实现)