用于Android 4.4屏幕录制的API?

时间:2013-11-30 23:46:04

标签: android video-encoding screen-capture

其中一个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的帧缓冲区。是否有更优雅的原生解决方案?

2 个答案:

答案 0 :(得分:9)

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

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

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

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

答案 1 :(得分:1)

好吧,AFAIK,我没有看到API支持等同于捕获屏幕上的内容。