Android 4.4 屏幕录制的 API?

3
Android 4.4(Kit Kat)的功能之一是提供了一种方法,使开发人员能够使用adb shell screenrecord捕获屏幕的MP4视频。 Android 4.4是否提供了任何新的API来捕获和编码视频,还是仅提供screenrecord实用程序/二进制文件?我问这个问题是因为我想在我正在编写的应用程序中进行一些屏幕捕捉工作。在任何人问之前,是的,该应用程序将具有帧缓冲区访问权限。但是,我看到的唯一由Android提供的捕获/编码API(MediaRecorder)似乎仅限于从设备的相机录制视频。我在StackOverfow上看到的唯一屏幕捕获解决方案似乎都是围绕定期间隔拍摄屏幕截图或使用JNI对带有移植版本的ffmpeg的帧缓冲区进行编码。是否有更优雅,本地的解决方案?

现在在Android 5.0中可以使用media.projection API实现此功能:https://developer.android.com/reference/android/media/projection/package-summary.html - mbonnin
2个回答

9
screenrecord工具使用私有API,因此您无法完全模仿它的功能。
它的工作方式是创建一个虚拟显示器,将虚拟显示器路由到视频编码器,然后将输出保存到文件中。您可以做类似的事情,但由于您不是以“shell”用户身份运行,因此只能看到您创建的层。相关的API旨在创建Presentation,这可能不是您想要的。
请参阅CTS测试源代码,其中包含一个简单的示例(仅使用ImageView)。
当然,如果您碰巧是一个GLES应用程序,您可以直接记录输出(例如,请参见EncodeAndMuxTestGrafika中的“Record GL app”活动)。

1

据我所知,我没有看到与捕捉屏幕上正在发生的事情相当的API支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接