【问题标题】:API's for Android 4.4 screen recording?用于 Android 4.4 屏幕录制的 API?
【发布时间】:2013-11-30 23:46:04
【问题描述】:

features of Android 4.4 (Kit Kat) 之一是它为开发人员提供了一种使用adb shell screenrecord 捕获屏幕 MP4 视频的方法。 Android 4.4 是否为应用程序提供任何新的 API 来捕获和编码视频,还是仅提供 screenrecord 实用程序/二进制文件?

我问是因为我想在我正在编写的应用程序中做一些屏幕捕获工作。在任何人问之前,是的,应用程序拥有帧缓冲区访问权限。但是,我见过的唯一 Android 提供的捕获/编码 API (MediaRecorder) 似乎仅限于录制视频 from the device's camera

我在 StackOverfow 上看到的唯一屏幕捕获解决方案似乎围绕定期截取屏幕截图或使用 JNI 使用移植版本的 ffmpeg 对帧缓冲区进行编码。还有更优雅的原生解决方案吗?

【问题讨论】:

标签: android video-encoding screen-capture


【解决方案1】:

screenrecord 实用程序使用私有 API,因此您不能完全完成它的工作。

它的工作方式是创建一个虚拟显示器,将虚拟显示器路由到视频编码器,然后将输出保存到文件中。你基本上可以做同样的事情,但是因为你不是作为“shell”用户运行的,你只能看到你创建的层。相关 API 是围绕创建 Presentation 而设计的,这可能不是您想要的。

查看source code for a CTS test 的一个简单示例(仅使用 ImageView)。

当然,如果您恰好是 GLES 应用程序,您可以直接记录输出(参见例如 EncodeAndMuxTestGrafika 中的“记录 GL 应用程序”活动)。

【讨论】:

    【解决方案2】:

    嗯,AFAIK,我没有看到 API 支持等同于捕捉屏幕上发生的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 2014-07-11
      • 1970-01-01
      • 2016-10-28
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      相关资源
      最近更新 更多