从SurfaceComposerClient获取截图

时间:2014-01-13 14:51:09

标签: android android-ndk mediacodec

是否可以使用SurfaceComposerClient来获取屏幕截图,就像MediaCodec使用createInputSurface()一样。

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

从4.3开始,看来ScreenshotClient无法做多个截图。

2 个答案:

答案 0 :(得分:1)

是的,假设您正在以shellroot运行,并且您不介意使用非公开的原生API(即您不关心每次新的应用是否会中断操作系统的版本推出。)

规范示例是screenrecord,在Android 4.4中引入。它会创建一个虚拟显示并将输出定向到Surface。对于正常操作,MediaCodec输入表面接收输出。对于screenrecord v1.1中引入的“bugreport”模式,输出转到GLConsumer(大致相当于SurfaceTexture),并将其呈现给带有重叠文本的Surface

答案 1 :(得分:1)

Android 4.3中存在一个错误(请参阅Android开源项目问题跟踪器上的问题5964960638),这意味着不能使用ScreenshotClient拍摄多个屏幕截图。