是否可以使用 SurfaceComposerClient 来获取屏幕截图,就像 MediaCodec 使用 createInputSurface() 一样。
我不能为此使用 MediaCodec,因为我需要原始视频而不是编码数据。
从 4.3 开始,ScreenshotClient 似乎不能做多个屏幕截图。
是否可以使用 SurfaceComposerClient 来获取屏幕截图,就像 MediaCodec 使用 createInputSurface() 一样。
我不能为此使用 MediaCodec,因为我需要原始视频而不是编码数据。
从 4.3 开始,ScreenshotClient 似乎不能做多个屏幕截图。
是的,假设您以shell
or身份运行root
,并且您不介意使用非公共本机 API(即,您不在乎每次新版本的操作系统推出时您的应用程序是否会中断)。
典型的例子是screenrecord,在 Android 4.4 中引入。它创建一个虚拟显示器并将输出定向到Surface
. 对于正常操作,MediaCodec
输入表面接收输出。对于screenrecord v1.1中引入的“bugreport”模式,输出到 a GLConsumer
(大致相当于SurfaceTexture),它被渲染为Surface
带有覆盖文本的 a。