导航:首页 > 操作系统 > android屏幕录制源码

android屏幕录制源码

发布时间:2023-03-19 21:15:15

android 5.0+ 屏幕录制实现

Android 从 4.0 开始就提供了手机录屏方法,但是需要 root 权限,比较麻烦不容易实现。但是从 5.0 开始,系统提供给了 app 录制屏幕的一系列方法,不需要 root 权限,只需要用户授权即可录屏,相对来说较为简单。本文是在参考了网络上其他录屏资料后完成的, 感谢 。以下将介绍开发录屏功能的一系列步骤以及实现过程中所遇到的一些需要注意的事项。

因为录制用到麦克风,所以需要加上 AUDIO 权限,

如果开发的 app targetApi 在 6.0 以上时,还需要动态获取权限。

这里先介绍 MediaProjectionManager , MediaProjectionManager 是系统提供的一种服务,当我们拿到这个服务对象,可以创建一个 Intent ,通过这个 Intent 可以启动一个弹框样式的 Activity,如果用户授权了,那我们便可以继续下一步屏幕录制。需要说明的是,Intent 是去启动另一个 Activity 的,有极少极少的机型是没有对应的授权Activity 的,所以这里需要多加判断,防止应用奔溃。

即使用户授权了,同意录制操作,仍然需要捕获异常,因为有可能会出现这样一种情况,就是用户在同意录屏的时候系统也正在录屏,录屏操作冲突了。

这一步是整个录屏操作最为关键的一步!我们初始化了 MediaRecorder,设置了是山升否录上声音、录屏文件格式、录屏文件路径、音视凯辩频的编码器、比特率、视频帧率等
然后将在步骤 3 中的 resultCode 以及 data 作为必要的参数通过 MediaProjectionManager 创建 VirtualDisplay。VirtualDisplay 可以理解为虚拟的呈现器逗孙老,它可以捕获屏幕上的内容,并将其捕获的内容渲染到 Surface 上(Surace 由 MediaRecorder 提供,通过 getSurface() 方法得到),MediaRecorder 再进一步将其封装处理为 Mp4 文件。

经过以上步骤 prepare 之后,当再次调用 MediaRecorder.start() 就可以开始录屏了,这里同意也需要注意的时,调用 start() 方法开始录屏之后,不能立即调用 stop()方法停止录屏,否则会奔溃。测试在测试录屏功能时立马停止录屏,应用奔溃,一直找不到原因。直到看到了源码( API 26 )里的注释

所以为了反正奔溃,在 stop 的时候捕获异常,并且置空 MediaRecorder,下次录屏的时候再重新生成 MediaRecorder。

由于知识水平有限,难免有错误遗漏,欢迎指正!项目地址为 屏幕录制

② android 录制屏幕怎么实现

使用原生功能进行屏幕录制
第一步:下载 ADB工具包,并将其解压缩到任意硬盘根目录。由于屏幕录制功能默认是隐藏的,因此需要 ADB 工具予以协助。
第二步:在手机设置中的“开发人员选项”中开启“USB调试”,而后使用USB线将手机连接电脑。部分设备还需要允许 USB 调试授权。
第三步:按下“WIN键+R”,输入“cmd”并回车,打开cmd命令符工具。
输入存放根目录的盘符(例如G:),回车。
输入cd adb,切换到ADB工具文件夹
输入adb shell,测试是否可以正常连接手机。若显示 shell@XX:/ $(XX为机型名),则连接正常,按“Ctrl键+C”退出测试。
注:输入命令后若提示 error:device not found ,可在电脑下载豌豆荚 ,打开USB调试后连接手机安装驱动即可。
最后,输入 adb shell screenrecord /sdcard/XXX.mp4 (XXX为视频文件名,可自定义),开始录制手机屏幕,视频格式为 mp4,存放到手机sd卡中,默认录制时间为180s,中途可按“Ctrl键+C”停止录制。

③ android 4.4 怎么实现屏幕录制功能

你好!满意请采纳
Android系统如何录制屏幕(录制成mp4格式) 如果能将Android手机(或平板)的屏幕录制成视频文件,那是一件非常酷的事(iOS8已经提供了这一功能,能通过OSX直接在Mac上录制iPad、iPhone的屏幕,windows没试过,不知可不可以)。不过以前的方法都是通过截屏录制的,效果极差。幸好Android4.4以上版本提供判知了这一功能。但无法在手机上直接启动,需链镇要通过adb使用命令行启动。
大家可以进入shell。或干脆直接用adbshell执行命掘唤消令。该命令是screenrecord,可以输入screenrecord --help,看看帮助,如下所示。

Usage: screenrecord [options]
Android screenrecord v1.2. Records the device's display to a .mp4 file.
Options:

--size WIDTHxHEIGHT
Set the videosize, e.g. "1280x720". Defaultis the device's main
displayresolution (if supported), 1280x720 if not. For best results,
use a sizesupported by the AVC encoder.

--bit-rate RATE
Set thevideo bit rate, in bits per second. Value may be specified as
bits ormegabits, e.g. '4000000' is equivalent to '4M'. Default 4Mbps.

--bugreport

Addadditional information, such as a timestamp overlay, that is helpful
in videoscaptured to illustrate bugs.

--time-limit TIME
Set themaximum recording time, in seconds. Default / maximum is 180.

--verbose
Displayinteresting information on stdout.

--help
Show thismessage.
Recording continues until Ctrl-C is hit or the timelimit is reached.

从这些帮助信息可以了解到,screenrecord需要后面跟一个mp4文件名。最简单的形式如下:
screenrecord /sdcard/game.mp4
但要注意,mp4要写入的目录必须是可写的。
输入完命令后,直接按回车,命令会被阻塞,默认什么都不会输出,这是正在录制呢。操作手机的所有画面都会被录制下来。如果要输出相应的信息,需要加--verbose命令行参数,加该命令行参数,整个录制过程可能会输出如下类似的信息。

Main display is 1080x1920 @60.00fps (orientation=0)
Configuring recorder for 1080x1920 video/avc at4.00Mbps
Content area is 1080x1920 at offset x=0 y=0

^CEncoder stopping; recorded 68 frames in 12 seconds
Stopping encoder and muxer
Executing: /system/bin/am broadcast -aandroid.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/test.mp4
Broadcasting: Intent {act=android.intent.action.MEDIA_SCANNER_SCAN_FILE dat=file:///sdcard/test.mp4 }
Broadcast completed: result=0
当然,可以跟很多选项,常用的就是--size(尺寸)、--bit-rate(比特率)和--time-limit(录制最大时间)

尺寸默认是当前手机屏幕分辨率、比特率是默认4Mbps、录制时间默认是3分钟(180秒)
screenrecord --time-limit 100 /sdcard/game.mp4
上面的命令最大可录制100秒的视频。如果想中途停止录制,可按Ctrl C,终止录制,game.mp4仍然会生成,但只会录制从开始录制到按Ctrl-C这段时间的视频。

④ 如何录制Android屏幕内容

录制Android屏幕内容的解决办法

⑤ Android截屏、录屏工具

有时候会用到颜色拾取器这样的东西来查看屏幕上的颜色值,一直是用Pixolor这个软件来看颜色的;很方便,点哪里显示哪里,也没有延迟,以为是什么黑科技;我注意到一个细节,如果只是切换屏幕,颜色拾取器不会更新,只有移动拾取器才更新选中;可以确定是截屏来实现的了,那就简单了,截屏获取像素点的颜色值就好了

网上看了一下,截屏大概分为保存View为图像和调用录屏服务两种办法,录屏是比较好的办法,可以在APP外截屏,所以简单的封装了一下

Step 1. Add the JitPack repository to your build file

Step 2. Add the dependency

主要分为两步,第一步是开启录屏;第二步就可以直接获取截屏,返回Bitmap
截图的过程录屏是开启的,录屏开启就可以进行截屏,操作完需要关闭录屏
截屏过程很快,效果很好

如果是APP外截屏则开启悬浮窗服务,可以通过操作悬浮窗进行截屏
参考文章: Android 截屏方式整理 、 Android录屏(5.0+)

1.初始化一个 MediaProjectionManager

2.创建并启动 Intent

3.在 onActivityResult 中拿到MediaProjection

4.设置VirtualDisplay将图像和展示的View关联起来。一般来说我们会将图像展示到SurfaceView,这里为了为了便于拿到截图,我们使用ImageReader,他内置有SurfaceView。

5.通过ImageReader拿到截图

6.注意截屏之后要及时关闭VirtualDisplay ,因为VirtualDisplay 是十分消耗内存和电量的。

录屏和截屏差不多,只是截屏的时候只是设置了一个ImageReader去获取图像数据,而录屏是设置一个 SurfaceView 去接收内容,获取视频流,然后通过 MediaCodec 来实现视频的硬编码,然后保存为视频文件

初始化录屏的大小和码率

开始录屏,设置输出文件

停止录屏

参考文章: Android视频录制--屏幕录制

1.在 AndroidManifest 中添加权限,Android 6.0 加入的动态权限申请,如果应用的 targetSdkVersion 是 23,申请敏感权限还需要动态申请

中间操作和截屏一样,就是准备开启录屏

5.创建虚拟屏幕,这一步就是通过 MediaProject 录制屏幕的关键所在, VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR 参数是指创建屏幕镜像,所以我们实际录制内容的是屏幕镜像,但内容和实际屏幕是一样的,并且这里我们把 VirtualDisplay 的渲染目标 Surface 设置为 MediaRecorder 的 getSurface ,后面我就可以通过 MediaRecorder 将屏幕内容录制下来,并且存成 video 文件

6.录制屏幕数据,这里利用 MediaRecord 将屏幕内容保存下来

⑥ android 怎么录制手机屏幕

1首先我们要在我们自己的安卓手机中安装一款可以进行屏幕录像的软件,通过这个软来进行日常的视频录制并分享给我们的好友或者上传到我们自己的视频平台同样可以获得一定的收入;

2如图我们通过搜索相关关键词搜索我们想要的录像软件,或者通过手机助手找到我们今天要用的这个手机屏幕录像软件,并在自己的安卓手机上面进行下载安装;

3返回手机桌面找到我们安装好i的软件如图直接点击打开;

4打开软件后会如图有三个选择图标,这个时候我们首先要做的是对这个软件进行一个简单的设置,主要设置我们录制视频的保存目录和一些其它选择项目设置

5在设置好后我们可以开始进行录像了,这个时候我们点击红色区域即可开始进行录像根据我们的思路来按步骤的进行录像,注意不要在太吵的地方录制。这个软件同样也会录制声音;

6在我们录制完后,我们直接回到手机桌面再次点击一个这个软件。或者通过通知栏打开软件同样可以关闭软件。在关闭后我们录制的视频会自己保存到我们设置的保存目录下面

⑦ 如何录制Android屏幕内容

谷歌从Android 4.4开始,就加入了对屏幕进行录制的功能,只是当时录屏仅是面向开发者的试验功能,所以实用性不算很高。步入Android 5.0后,新版系统正式开放了API android.media.projection接口,这意味着无需ROOT,我们即可实现对手机屏幕进行录制操作了。因此,本文内容仅限Android 5.0或更高版本的手机。
http://jingyan..com/article/4e5b3e19385ae891901e24be.html
图文教程,请参考,按步骤进行操作

⑧ 如何使用Android Studio录制手机屏幕操作并导出成GIF演示动画

这个我知道,首先下载巧蚂闹录屏大师,录制成mp4,然后在window下面有一个视频转gif的软件工具movietogif_setup1.2.4。使用这两个就可以。以上内容来源于android学习手册,360手机助手中下载,里面有108个例子,源码还有文档孝罩。下面的截图就是通过这物芦种方式录制的,请看:

⑨ 安卓手机怎么录制屏幕

方法一:一些安卓手机内置录屏功能,可以下滑主屏幕,之后找到“羡和录屏”图标,点击即可使用。

方法二:在应用商店下载录屏软件进行使用。

安卓手机使用方法:1、设置流量卡后可以打开流量提醒功能,方便实时查看流量使用情况。

2、最好不要使用充电宝给手机充电,有一定的安全隐患。

3、一些手机支持克隆模式,在换手机时可以快速将手机内容复制到另一部肆派告手机。

4、一些安卓手机支持云存储功能,可以在手机的设置界面找到,使用云存储可以节省手机的存储空间,另外换新手机后,可以直接从云端将数据备份到新手机。

资料拓展:Android使用skia为核心图形引擎,搭配OpenGL/ESskia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是雏形的裂明。2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,Skia也是GoogleChrome的图形引擎。

⑩ 如何录制Android屏幕内容

工具:

第三方安装屏幕录制工具

安卓手机

方法如下:州饥

  1. 下载屏幕录像工具进行安装,然后打开,打开后,可以点击上面的三个齿轮进行配置

阅读全文

与android屏幕录制源码相关的资料

热点内容
如何在文件夹中显示创建日期 浏览:593
淮南程序员接私活项目 浏览:482
怎样加密自己的密码 浏览:527
安卓怎么关权限保护隐私 浏览:390
海牛微视app怎么用 浏览:70
单片机怎样选变压器 浏览:829
癌症pdf 浏览:725
云服务器镜像批量部署环境 浏览:683
安卓手机浏览器能访问什么网站 浏览:254
找不到网站的服务器ip地址该如何解决 浏览:743
算法十个数降序排列 浏览:95
基于单片机的老年人健康监测系统 浏览:706
python入门经典pdf下载 浏览:17
东芝变频2p空调压缩机 浏览:227
自家wifi怎么能加密 浏览:644
红米k40加密门禁卡 浏览:847
什么样的源码好看 浏览:156
手机主服务器有什么用 浏览:612
程序编写命令 浏览:597
android发送心跳包 浏览:385