其中一个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的帧缓冲区。是否有更优雅的原生解决方案?
答案 0 :(得分:9)
screenrecord
实用程序使用私有API,因此您不能完全它的功能。
它的工作方式是创建虚拟显示器,将虚拟显示器路由到视频编码器,然后将输出保存到文件中。你可以做同样的事情,但因为你没有作为“shell”用户运行,你只能看到你创建的图层。相关的API是围绕创建Presentation而设计的,这可能不是您想要的。
使用一个简单的示例(仅使用ImageView)查看source code for a CTS test。
当然,如果你恰好是GLES应用程序,你可以直接记录输出(例如EncodeAndMuxTest中的Grafika和“记录GL应用程序”活动。)
答案 1 :(得分:1)
好吧,AFAIK,我没有看到API支持等同于捕获屏幕上的内容。