主要观点总结
本文介绍了Android系统中Surface截图的方法和难点,包括使用PixelCopy、VirtualDisplay等方案,以及如何应对不同版本的Android系统。
关键观点总结
关键观点1: Surface截图的方法和难点
介绍了Android系统中Surface截图的基本方法和遇到的难点,包括使用MediaProjection框架、PixelCopy、VirtualDisplay等方案。
关键观点2: PixelCopy的使用和性能
阐述了PixelCopy的使用方法、性能如何,以及与Bitmap池化的关联。
关键观点3: VirtualDisplay方案
详细介绍了VirtualDisplay方案在Android 7之前版本的使用方法和注意事项。
关键观点4: 引申问题:如何录制副屏
讨论了如何录制副屏的问题,包括scrcpy方案和虚拟屏中转方案等。
关键观点5: Android 11的新特性
简要介绍了Android 11中关于虚拟屏和mirrorSurface的新特性。
文章预览
本文作者 作者: 时光少年 链接: https://juejin.cn/post/7398748051878084648 本文由作者授权发布。 前言 说起Surface截图,很多人一个惯性思维是使用MediaProjection框架,但是有点杀鸡使用宰牛刀的问题,实际上,MediaProjection往往需要申请权限,其录制范围包括第三方app,但是如果是自身app,实际上完全没有必要,仅仅使用DisplayManager创建虚拟屏即可,连权限都不需要申请。 实际上,Android Surface截图实际上不算什么难事,在Android N版本开始,系统就已经提供了PixelCopy类来截取Surface,同时还支持缩放,也就是会根据传入的Bitmap大小进行缩放,这种方式可以辅助我们实现画面调整。 1 关于录屏 在之前一篇文章中我们提到过,录制自身屏幕实际上也有最简单的方法,技术上就是使用 DecorView#draw 方法将UI绘制到Bitmap上,然后再将Bitmap绘制到 android.media.MediaCodec#createInpu
………………………………