导航:首页 > 操作系统 > android屏幕录制开发

android屏幕录制开发

发布时间:2024-03-10 18:33:37

1. 安卓手机录屏怎么录

如果使用的是华为手机,以华为nova5pro手机为例,方法如下:
一、使用组合键录屏
同时按住电源键和音量上键启动录屏,再次按住结束录屏。
二、使用快捷开关录屏
1、从状态栏向下滑出通知面板(可继续下滑),点击屏幕录制,启动录屏。
2、点击屏幕上方的红色计时按钮,结束录屏。
3、进入图库查看录屏结果。
三、使用双指关节录屏
1、使用指关节前,请进入 设置 > 辅助功能 > 快捷启动及手势 > 录屏 ,确保录屏开关已开启。
2、双指指关节稍微用力并连续快速地双击屏幕启动录屏,再次双击结束录屏。
四、边录屏,边解说
录屏时,您还可以开启麦克风,边录屏,边解说。
启动录屏后,点击麦克风图标让其处于开启状态,就可以同步记录声音。
当麦克风图标处于关闭状态时,此时仅可以收录系统音(如:音乐)。如您不想收录任何系统音,请在录屏前将手机调成静音并关闭音乐等媒体音。

2. 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。

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

3. 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屏幕录制开发相关的资料

热点内容
phpexif信息 浏览:540
单片机三字节浮点数 浏览:754
命令与征服泰伯利亚战争下载 浏览:376
c窗口界面编程 浏览:21
hypermill编程能做模板吗 浏览:780
计算机网络最经典的算法 浏览:626
华为思科的配置命令 浏览:869
linux设置光盘启动 浏览:359
程序员俱乐部注册 浏览:17
洗洁精鸡蛋盘解压视频 浏览:291
企业内网加密app 浏览:49
腾讯云服务器怎么设置本地网络 浏览:623
日常程序员 浏览:513
哪个pe有bit加密功能 浏览:108
rust服务器是用什么ip 浏览:692
java随机字符串生成 浏览:551
数码宝贝编程人物 浏览:390
php多用户建站系统 浏览:624
加密防盗地上栓价位 浏览:671
比泽尔压缩机下载 浏览:421