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 ()
此方法是停止截屏的方法;
翻译的不到位,敬请谅解;
我会持续的更新,以求达到最好的解释和理解;
具体使用方法,以后会出一个文章来讲解;