3

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

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

从 4.3 开始,ScreenshotClient 似乎不能做多个屏幕截图。

4

2 回答 2

1

是的,假设您以shellor身份运行root,并且您不介意使用非公共本机 API(即,您不在乎每次新版本的操作系统推出时您的应用程序是否会中断)。

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

于 2014-01-14T20:17:37.227 回答
1

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

于 2014-02-06T13:21:02.827 回答