【发布时间】:2014-05-12 02:18:40
【问题描述】:
是否可以构建 screenrecord 二进制文件以在 4.2 上运行,还是缺少太多的 api? 我可以解决更改的 api 和库吗?因为据我了解,主要部分存在于 4.2 中(如 mediacodec)。我不需要多路复用器,我可以在 4.2 中使用我自己的多路复用器。
【问题讨论】:
标签: android android-ndk android-source android-mediacodec
是否可以构建 screenrecord 二进制文件以在 4.2 上运行,还是缺少太多的 api? 我可以解决更改的 api 和库吗?因为据我了解,主要部分存在于 4.2 中(如 mediacodec)。我不需要多路复用器,我可以在 4.2 中使用我自己的多路复用器。
【问题讨论】:
标签: android android-ndk android-source android-mediacodec
这会很困难。
screenrecord 在 Android 4.4 中提供,但除了一个次要 API(用于拆除虚拟显示器)之外,它所需的一切都在 Android 4.3 中提供。
Android 4.2 缺少一些重要的东西。 MediaMuxer 类不存在,MediaCodec 还没有 createInputSurface() 调用。正如您所指出的,解决前者并不难,但对于后者,您要么必须提供 MediaCodec 原始 YUV 缓冲区(这在 4.3 之前很难做到,并且会降低您的帧速率),或者(因为 @987654329 @ 已使用私有内部 API)直接与 libstagefright 接口以实现您自己的“元数据模式”处理。
我不确定虚拟显示器在 4.2 中的状态是什么,但您还需要它们才能完全工作。
像 Kamcord 和 Everyplay 这样的公司宣传他们可以将游戏录制回 Android 4.1,但我怀疑他们正在录制 OpenGL ES 渲染(而不是虚拟显示输出)并自己做很多内部管道.
【讨论】: