Android 4.4(Kit Kat)的一个功能是它为开发人员提供了一种使用屏幕捕获MP4视频的方法adb shell screenrecord
.Android 4.4是否为应用程序提供了捕获和编码视频的新API,还是只提供screenrecord
实用程序/二进制文件?
我问,因为我想在我正在编写的应用程序中进行一些屏幕捕获工作.在有人问之前,是的,该应用程序将具有帧缓冲访问权限.但是,我见过的唯一Android提供的捕获/编码API(MediaRecorder)似乎仅限于从设备的摄像头录制视频.
我在StackOverfow上看到的唯一屏幕捕获解决方案似乎围绕定期截取屏幕截图或使用JNI用移植版本的ffmpeg编码帧缓冲区.是否有更优雅的原生解决方案?
该screenrecord
实用程序使用私有的API,所以你不能这样做究竟它做什么.
它的工作方式是创建虚拟显示,将虚拟显示路由到视频编码器,然后将输出保存到文件.你可以做同样的事情,但因为你没有作为"shell"用户运行,你只能看到你创建的图层.相关的API是围绕创建演示文稿而设计的,这可能不是您想要的.
使用一个简单的示例(仅使用ImageView)查看CTS测试的源代码.
当然,如果你碰巧是一个GLES应用程序,你可以直接录制输出(例如见EncodeAndMuxTest并在"记录GL应用"活动Grafika).