android - 从 SurfaceComposerClient 获取屏幕截图

标签 android android-ndk android-mediacodec

是否可以使用 SurfaceComposerClient 获取屏幕截图,MediaCodec 使用 createInputSurface() 的方式。

我不能为此使用 MediaCodec,因为我需要原始视频而不是编码数据。

从 4.3 开始,ScreenshotClient 似乎不能进行多次截图。

最佳答案

是的,假设您以 shellroot 身份运行,并且您不介意使用非公共(public) native API(即您不关心您的每次推出新版本的操作系统时,应用程序都会中断)。

典型的例子是screenrecord , 在 Android 4.4 中引入。它创建一个虚拟显示器并将输出定向到 Surface。对于正常操作,MediaCodec 输入表面接收输出。对于 screenrecord v1.1 中引入的“bugreport”模式,输出进入 GLConsumer(大致相当于 SurfaceTexture ),它被渲染到带有覆盖文本的 Surface

关于android - 从 SurfaceComposerClient 获取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094185/

相关文章:

android - 使用带有联系人电话号码的自动完成 TextView

android - 如果我在 firebase 身份验证中有很多多余的匿名用户可以吗?

android - 使用 ANativeWindow 的 SurfaceTexture/Surface 映射

适用于 AC-3 的安卓 MediaCodec

java - ObjectInputStream 给我一个空对象(但读取的文件不为空)

第三方应用的Android测试记录和webview支持

Android 致命信号 11 (SIGSEGV) 位于 0x636f7d89 (code=1)。如何追踪它?

android - 为 Tensorflow 编译 Android 示例

android - 解码音频文件并重新编码为所需的 PCM 格式 : 44, 100 kHz,2 channel ,16 位

android - 如何在配置前获得 MediaCodec 的最大分辨率