Bootstrap

Android 录屏操作

Android 录屏操作

本文主要介绍android中如何通过MediaRecorder实现录屏操作的.

1: 申请权限
<uses-permission android:name="android.permission.RECORD\_AUDIO" />
<uses-permission android:name="android.permission.WRITE\_EXTERNAL\_STORAGE" />

以上是录音以及存储的权限,另外需要动态申请录屏的权限.

if (android.os.Build.VERSION.SDK\_INT >= android.os.Build.VERSION\_CODES.LOLLIPOP) {
    service = (MediaProjectionManager) getSystemService(Context.MEDIA\_PROJECTION\_SERVICE);
    Intent screenCaptureIntent = service.createScreenCaptureIntent();
    startActivityForResult(screenCaptureIntent, 1001);
}

如上操作,点击后会弹出提示:

在这里插入图片描述

点击立即开始即可.

2: 获取MediaProjection
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1001 && resultCode == RESULT\_OK) {
        if (android.os.Build.VERSION.SDK\_INT >= android.os.Build.VERSION\_CODES.LOLLIPOP) {
            mediaProjection = service.getMediaProjection(resultCode, data);
        }
        Toast.makeText(this, "申请权限成功", Toast.LENGTH\_SHORT).show();
    }
}

3: 创建MediaRecorder

创建mediarRecorder实例,设置相关参数.

mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG\_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOutputFile("sdcard/test.mp4");
mediaRecorder.setVideoSize(1920, 2560);
mediaRecorder.setVideoFrameRate(90);

4: 创建VirtualDisplay并开始录制

VirtualDisplay 通过mediaProjection关联创建.

if (android.os.Build.VERSION.SDK\_INT >= android.os.Build.VERSION\_CODES.LOLLIPOP) {
    try {
        mediaRecorder.prepare();
        isRecording = true;
    } catch (IOException e) {
        e.printStackTrace();
    }
    Surface surface = mediaRecorder.getSurface();


# 总结

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。**所以:贵在坚持!**

上面分享的字节跳动公司2021年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
![](https://img-blog.csdnimg.cn/img_convert/ec50c5d8a15dde97ee01f5cdede6c2fc.webp?x-oss-process=image/format,png)



**【Android高级架构视频学习资源】**

Android部分精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

;