捕获android屏幕并以编程方式创建视频

时间:2012-11-16 20:44:43

标签: java android screenshot video-capture

在Android / Java中,是否有任何代码示例以编程方式捕获每秒具有良好帧数的计算机的屏幕截图并创建视频?

我想要一个教程或完整的源代码来做到这一点。我希望该程序能够在没有设备的情况下工作。

Play商店中有一个名为Screencast Video Recorder的应用程序可以执行此操作。但是你需要让设备工作才能工作,所以我知道它可以完成。

捕获android屏幕截图并以编程方式在非root设备上创建视频的最佳方法是什么?

5 个答案:

答案 0 :(得分:3)

检查以下链接 https://code.google.com/p/java-remote-control/

在这个项目中,所有者创建了一个java遥控器,即他已经从远程计算机捕获了图像并转移到服务器并将其转换为具有不同格式的电影,只需要了解他所做的事情并实现相同的目的。你所有的需求。您可以从以下URL访问SVN客户端的完整源代码

http://java-remote-control.googlecode.com/svn/trunk/

您还可以在java中查找提供createScreenCapture方法的Remote类

答案 1 :(得分:2)

您可以在adb运行时使用DDMS捕获屏幕并拥有帧缓冲区的权限:

点击此链接了解更多详情:

http://thetechjournal.com/electronics/android/how-to-capture-screenshots-and-record-video-on-android-device.xhtml

ALSO

检查此链接可能会获得您需要的一些想法:

http://answers.oreilly.com/topic/951-how-to-capture-video-of-the-screen-on-android/

http://www.mightypocket.com/2010/09/installing-android-screenshots-screen-capture-screen-cast-for-windows/

并检查此项目:

http://sourceforge.net/projects/ashot/

希望这有帮助。

答案 2 :(得分:2)

从Android 4.4开始,屏幕录制功能可通过adb访问。

http://developer.android.com/tools/help/adb.html#screenrecord

  

screenrecord命令是一个shell实用程序,用于记录运行Android 4.4(API级别19)及更高版本的设备的显示。该实用程序将屏幕活动记录到MPEG-4文件中,然后您可以将其下载并用作视频演示的一部分。此实用程序对于想要在不使用单独的录制设备的情况下创建宣传或培训视频的开发人员非常有用。

答案 3 :(得分:2)

有一个名为Telecine的应用程序是开源的,允许您记录屏幕 - 代码可以在https://github.com/JakeWharton/Telecine找到。所有功劳都归杰克沃顿所有。

如果你需要一个例子,可以在Commonsware的github页面找到一个例子--Mark Murphy使用MediaProjection API为屏幕截图和屏幕录制提供了一个示例应用程序。

答案 4 :(得分:0)

从市场上试用此应用程序

https://play.google.com/store/apps/details?id=com.ms.screencastfree

**不适用于Galaxy Nexus或Tegra 2/3 **

EDIT 28/11/2014

Lollipop已发布并提供新的屏幕录制API

http://developer.android.com/about/versions/android-5.0.html#UI

  

屏幕截图和分享

     

Android 5.0允许您添加屏幕捕获和屏幕共享   使用新的android.media.projection API为您的应用程序提供的功能。   例如,如果要启用此功能,则此功能非常有用   视频会议应用中的屏幕共享。

     

新的createVirtualDisplay()方法允许您的应用捕获   主屏幕的内容(默认显示)进入Surface   对象,然后您的应用可以通过网络发送。仅限API   允许捕获非安全屏幕内容,而不是系统音频。至   开始屏幕捕获,您的应用必须首先请求用户   通过使用Intent启动屏幕捕获对话框来获得权限   通过createScreenCaptureIntent()方法获得。

     

有关如何使用新API的示例,请参阅MediaProjectionDemo   示例项目中的类。