是否可以构建在 4.2 上运行的 screenrecord 二进制文件,或者是否缺少太多 api? 我可以解决更改的 api 和库吗?因为据我所知,主要部分存在于 4.2 中(如 mediacodec)。我不需要混合器,我可以使用我自己的 4.2 混合器。
最佳答案
这会很困难。
screenrecord
在 Android 4.4 中发布,但除了一个次要 API(用于拆除虚拟显示)外,它所需的一切都在 Android 4.3 中提供。
Android 4.2 缺少一些重要的东西。 MediaMuxer
类不存在,MediaCodec
还没有 createInputSurface()
调用。正如您所指出的,解决前者并不难,但对于后者,您要么必须提供 MediaCodec
原始 YUV 缓冲区(这在 4.3 之前很难做到,并且会降低帧速率),或者(因为 screenrecord
已经在使用私有(private)内部 API)直接与 libstagefright 交互以实现您自己的“元数据模式”处理。
我不确定 4.2 中虚拟显示的状态,但您还需要这些才能完全工作。
像Kamcord这样的公司和 Everyplay宣传他们可以将游戏录制回 Android 4.1,但我怀疑他们正在录制 OpenGL ES 渲染(而不是虚拟显示输出)并自己进行大量内部管道。
关于android - 为 android 4.2 构建屏幕记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783669/