android projection,android通过MediaProjection获取屏幕内容

在android5.0之后,android官方提供了截取屏幕的新手段,那就是MediaProjection,它是一个准许应用拥有截取屏幕内容以及记录系统音频的功能

其使用方法大致可以分为:

获取MediaProjection的实例

private val mediaProjectionManager by lazy { fa.activity?.getSystemService(Context.MEDIA_PROJECTION_SERVICE) as? MediaProjectionManager }

(by lazy可以让我们在需要使用到的时候再初始化)

通过MediaProjection的管理类

MediaProjectionManager的createVirtualDisplay创建

VirtualDisplay

virtualDisplay = mediaProjection?.createVirtualDisplay(

"Name", width, height, displayMetrics.densityDpi,

DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, surface, null, null

)

将VirtualDisplay当做一个

虚拟的呈现器

VirtualDisplay捕获屏幕的内容

将捕捉到的内容渲染到surface上面

通过MediaRecord封装成MP4文件

mediaRecorder?.start()

(mediarecord开始记录)

在最后结束并保存完文件后,要记得将mediarecord关闭

需要注意的是,mediarecord的关闭需要先stop再reset,否则在运行的时候就会报异常

而如果想要录制环境音,在setaudiosource中可以设置

setAudioSource(MediaRecorder.AudioSource.MIC)

这个时候,其实想到一个需求,就是用户可能回想着在录制视频的时候直接添加背景音乐,而直接添加音乐会使环境音和背景音乐重叠,那么,一个较好的解决方案就是,剥离环境音再将背景音乐和没有音频的视频文件合并处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值