导航:首页 > 操作系统 > android开发录制视频

android开发录制视频

发布时间:2024-10-09 05:13:32

android调用系统相机实现拍照和视频录制

(1)申请权限

(2)设置布局

这里做了一个简单的布局:添加了一个按钮和一个ImageView控件用于显示拍摄的图像。

(3)为按钮添加点击事件监听

点击按钮时,调用系统相机进行拍照,并在确定后将图像显示在ImageView控件中。

(1)申请权限

(2)设置布局

添加了一个按钮和一个VideoView控件用于显示录制的视频。

(3)为按钮添加点击事件监听

同前面一样,点击按钮后调用系统相机进行录制视频,录制完成后点击确定即可将录制的视频显示在VideoView控件中。

对于Android11.0的版本,在调用系统相近进行视频录制的时候,即使在AndroidMenifest.xml中申请了CAMERA权限,还是会在程序运行时报错: Permission  Denial ,   . .... ....  with revoked permission android.permission.CAMERA

解决方法是在程序中动态申请权限:

写在最后:文章是在学习过程中做的学习笔记,同时与志同道合者分享,文章内容均经过我自己实验证实可行,如有问题欢迎留言,很高兴一起交流讨论,共同进步!

⑵ ADB录制视频 Android 视频录制命令 screenrecord

在Android 4.4(Kitkat - API level 19)上集成了一个比较好用的视频(.mp4格式)录制功能 – screenrecord 。

使用方法

1.  基本用法

$ adb shell screenrecord /sdcard/myscreenrecord.mp4

/sdcard/myscreenrecord.mp4 为视频录制文件路径

录制默认分辨率,默认4Mbps,默认180s的视频,保存到sdcard上名为myscreenrecord.mp4

2.  旋转(参数:–rotate)

$ adb shell screenrecord --rotate /sdcard/myscreenrecord.mp4

旋转90度

3.  指定分辨率(参数:–size)

$adb shell screenrecord --size 112x112 /sdcard/myscreenrecord.mp4

分辨率为112x112,建议不要指定分辨率,使用默认分辨率效果最佳;

注意,分辨率不是完全可以随意定制的,比如在我手机上录制100x100的会提示错误:

The max width/height supported by codec is1920x1088

100x100is not supported by codec, suggest to set it as112x112

4.  指定比特率(参数:–bit-rate)

$adb shell screenrecord --bit -rate 8000000 /sdcard/myscreenrecord.mp4

设置比特率为8Mbps,比特率越大,文件越大,画面越清晰;

5.  限制录制时间 (参数: –time-limit)

$adb shell screenrecord --time -limit 10 /sdcard/myscreenrecord.mp4

限制视频录制时间为10s,如果不限制,默认180s

6.  导出视频

$adb pull /sdcard/myscreenrecord.mp4

7.  注意

请关注视频文件生成大小,根据自身情况而定;

暂不支持声音;

咱时不支持模拟器录制( 模拟器录制看这里 ),出现如下提示:Unable to get output buffers (err=-38)

Encoder failed (err=-38),可认为是此原因;

8.  命令查看

adb shell screenrecord --help

Usage: screenrecord [options]

Records the device's display to a .mp4 file.

Options:

--size WIDTHxHEIGHT

Set the video size, e.g."1280x720".  Default is the device's main

display resolution (if supported),        1280x720if not.  For best

results,use a size supported by the AVC encoder.

--bit -rate RATE

   Set the video bit rate, in megabits per second.  Default4Mbps.

--time -limit TIME

   Set the maximum recording time, in seconds.  Default / maximum is180.

--rotate

    Rotate the output90 degrees.

--verbose

    Display interesting information on stdout.

--help

    Showthis message.

Recording continues until Ctrl-C is hit or the time limit is reached.

⑶ android开发设置屏蔽录制

项目开发中,为了用户信息的安全,会有禁止页面被截屏、录屏的需求。
这类资料,在网上有很多,一般都是通过设置Activity的Flag解决,如:

//禁止页面被截屏、录屏getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

这种设置可解决一般的防截屏、录屏的需求。
如果页面中有弹出Popupwindow,在录屏视频中的效果是:

非Popupwindow区域为黑色
但Popupwindow区域仍然是可以看到的

如下面两张Gif图所示:

未设置FLAG_SECURE,录屏的效果,如下图(git图片中间的水印忽略):

设置了FLAG_SECURE之后,录屏的效果,如下图(git图片中间的水印忽略):

⑷ 自家开发的AndroidApp里面自带的录像功能,录制的画面变形怎么解决

相机有自己支持的预览比例列表,是不是预览的view的宽高比和相机支持的比例不一样导致的?如果是的话不要固定那个view的大小,写成根据相机支持的preview大小自适应吧,然后多出来的部分给盖住。录出来的video也有支持的比例列表而且和preview的还不一样,自己设也可能会导致视频变形

⑸ 现在 做了个 android 视频录制的程序 ,后置摄像头总是旋转90度,如何用代码实现正常。

MediaRecorder 中一个方法setCamera();所以可以先设置好摄像头的参数,然后再设置到MediaRecorder 中(但是录制前需要解锁)。
部分关键的代码如果下:
//初始化相机信息
Camera mCamera = Camera.open();
Camera.Parameters params = mCamera.getParameters();
mCamera.setDisplayOrientation(90);//旋转了90度,最好先判断下JDK的版本号,再决定旋转不
mCamera.setParameters(params);
mCamera.stopPreview();
mCamera.unlock();//解锁
videoMediaRecorder.setCamera(mCamera);

阅读全文

与android开发录制视频相关的资料

热点内容
app旧版本不更新怎么操作 浏览:368
如何编译ddwrt 浏览:63
命令行读文件 浏览:350
phpjson转多维数组 浏览:910
linuxboot修复 浏览:843
程序在线编译系统的设计与实现 浏览:722
电脑c盘记录存在哪个文件夹 浏览:155
算法分析与设计替换方法 浏览:850
老程序员丢失手机 浏览:272
新世纪日本语pdf 浏览:85
基于单片机的数字示波器 浏览:36
登qq服务器连接中什么意思 浏览:436
表格宏命令 浏览:994
肯德基app设定在哪里 浏览:472
苹果电脑文件夹怎么添加打印机 浏览:701
pythonswagger 浏览:235
作业打卡解压素材 浏览:159
pdf导入ibooks 浏览:577
xps文件转pdf 浏览:134
怎么样获得命令方块 浏览:899