android - 为 android 4.2 构建屏幕记录

标签 android android-ndk android-source android-mediacodec

是否可以构建在 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/

相关文章:

android - 可搜索 Activity 被调用两次

android - MonoDroid 以编程方式更改 Activity 标签或标题

android - 在我的 LinearLayout 上画东西?

android - 使用 Android 原生 Binder 发送自定义对象

android - ADB,Android Debug Bridge,Android 开源项目上的组件源代码在哪里

android - 解析,两种不同的用户类型

android - 未配置 NDK。使用 SDK 管理器下载它。首选 NDK 版本为 '21.0.6113669'

android - 如何使用 C 中的 'mmap' 命令分配特定的内存区域? (安卓NDK)

通过编辑 AOSP 侧边的 Android 导航栏

android - AOSP 定制测试套件