Android之MediaProjection的简介

知识点:

1、MediaProjection简介;

2、MediaProjection方法简介;

3、新名词记录{

VirtualDisplay:

MediaProjectionManager:MediaProjection的管理类

}

MediaProjection是一个5.0之后给开发者提供的新的截屏或者录屏的新手段。MediaProjection可以用来捕捉屏幕,而MediaProjectionManager可以从命名上面来看到,它是是用来管理MediaProjection的。

MediaProjection是一个准许APP拥有截取屏幕或者是记录系统音频的能力。还有其他的能力依据MediaProjection的类型。通过MediaProjectionManager 类的 createScreenCaptureIntent()方法来开启,可以用来截取屏幕,但是不能够获取系统的音频。

下面是类下面的公共方法说明,这个类的公共方法并不多,也很容易理解;

公共方法1:

VirtualDisplay createVirtualDisplay (String name, 
                int width, 
                int height, 
                int dpi, 
                int flags, 
                Surface surface, 
                VirtualDisplay.Callback callback, 
                Handler handler)
创建一个屏幕的截图,保存在VirtualDisplay中,并返回。
参数1:实际的流媒体显示实体名字,不能为null;
参数2:实际的流媒体显示实体的宽度,单位为像素,必须大于0;
参数3:实际的流媒体显示实体的高度,单位为像素,必须大于0;
参数4:实际的流媒体显示实体的像素密度,单位为dp,必须大于0;
参数5:实际的流媒体显示实体标志的结合,更多请查看 DisplayManager里头的标志,取值是{VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY,VIRTUAL_DISPLAY_FLAG_PRESENTATION,
VIRTUAL_DISPLAY_FLAG_PUBLIC,
VIRTUAL_DISPLAY_FLAG_SECURE}中的一个
参数6:播放流媒体的surface实例,可为null,如果木有;
参数7:实际的流媒体显示实体状态改变时的回调方法,可能为null;
参数8:调用参数7回调方法的handler;
返回VirtualDisplay实例,具体请查看VirtualDisplay类;

公共方法2:

此方法是注册监听流媒体显示实体状态改变时的回调方法。参数请参照createVirtualDisplay()方法的参数7参数8;

void registerCallback (MediaProjection.Callback callback, 
                Handler handler)

公共方法3:

void unregisterCallback (MediaProjection.Callback callback)

顾名思义:这个方法是注销对流媒体状态改变的监听。

公共方法4:


void stop ()

此方法是停止截屏的方法;

翻译的不到位,敬请谅解;

我会持续的更新,以求达到最好的解释和理解;

具体使用方法,以后会出一个文章来讲解;