相关疑难解决方法(0)

如何使用Android API记录屏幕并截取屏幕截图?

背景

Android在Kitkat和Lollipop上获得了新的API,用于视频捕获屏幕.您可以通过ADB工具或通过代码(从Lollipop开始)来完成.

自新API发布以来,许多应用程序都使用此功能,允许记录屏幕,微软甚至制作了自己的Google-Now-On-tap竞争对手应用程序.

使用ADB,您可以使用:

adb shell screenrecord /sdcard/video.mp4 
Run Code Online (Sandbox Code Playgroud)

您甚至可以在Android Studio内部执行此操作.

问题

我找不到任何有关如何使用API​​的教程或解释,这在代码中是有意义的.

我发现了什么

我找到的唯一的地方是文件(这里,在"屏幕截图和分享"下),告诉我这个:

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

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

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

事实是,我找不到任何"MediaProjectionDemo"样本.相反,我发现了"屏幕截图"样本,但我不明白它是如何工作的,因为当我运行它时,我所看到的只是一个闪烁的屏幕,我不认为它将视频保存到一份文件.样本看起来非常错.

问题

如何使用新API执行这些操作:

  1. 开始录音,可选择包括音频(麦克风/扬声器/两者).
  2. 停止录音
  3. 截取屏幕截图而不是视频.

另外,我如何自定义它(分辨率,请求的fps,颜色,时间......)?

android screenshot screen-recording android-4.4-kitkat android-5.0-lollipop

40
推荐指数
1
解决办法
4万
查看次数