基于MediaProjection实现Android移动手机截屏和录屏功能
Android软件应用经常要求实现截屏和录屏的功能,那么如何实现Android软件截屏和录屏功能呢?本文将详情基于MediaProjection实现Android移动手机截屏和录屏功能。
MediaProjection可以用来捕捉屏幕,具体来说可以截取当前屏幕和录制屏幕视频。MediaProjection由MediaProjectionManager来管理和获取,具体使用步骤如下:
代码功能
首先,获取MediaProjectionManager,和其它的Manager一样通过Context.getSystemService()传入参数MEDIA_PROJECTION_SERVICE取得实例。
接着,调用MediaProjectionManager.createScreenCaptureIntent()弹出dialog讯问客户能否受权应用捕捉屏幕,同时覆盖onActivityResult()获取受权结果。
假如受权成功,通过MediaProjectionManager.getMediaProjection(int resultCode,Intent resultData)获取MediaProjection实例,通过MediaProjection.createVirtualDisplay(String name,int width,int height,int dpi,int flags,Surface surface,VirtualDisplay.Callback callback,Handler handler)创立VirtualDisplay实例。实际上在上述方法中传入的surface参数,是真正用来截屏或者者录屏的。
截屏使用ImageReader类,这个类的getSurface()方法获取到surface直接传入MediaProjection.createVirtualDisplay()方法中,此时即可以执行截取。通过ImageReader.acquireLatestImage()方法就可获取当前屏幕的Image,经过简单解决之后就可保存为Bitmap。
录屏需要用到MediaCodec,这个类将原始的屏幕数据编码,在通过MediaMuxer封装成MP4格式保存。MediaCodec.createInputSurface()获取一个surface对象传入MediaProjection.createVirtualDisplay()就可获取屏幕原始多媒体数据,之后读取MediaCodec编码输出数据经过MediaMuxer封装解决MP4就可播放,实现录屏。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 基于MediaProjection实现Android移动手机截屏和录屏功能