是否可以使用 SurfaceComposerClient 获取屏幕截图,MediaCodec 使用 createInputSurface() 的方式。
我不能为此使用 MediaCodec,因为我需要原始视频而不是编码数据。
从 4.3 开始,ScreenshotClient 似乎不能进行多次截图。
最佳答案
是的,假设您以 shell
或 root
身份运行,并且您不介意使用非公共(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/