关于Camera和MediaRecorder的问题

Camera2+ MediaRecorder 实现录制视频的功能,出现在某些设备上视频和音频不同步问题排查总结 (一)在谈问题前先要了解的知识储备 (1)MediaRecorder.OutputFormat也就是视频的输出格式类: 下表中是outputFormat类中 的调用字段 和它代表的格式对应表 调用字段 AAC_ADTS AMR_NB DEFAULT MPEG_2_TS MPEG_4 THREE_GPP WEBM 格式 .aac .3gp .ts .mp4 ... 阅读详情

近期接到需求需要Camera配合MediaRecorder进行preview转视频的录制,

问题1:

从Camera切换到MediaRecorder的时候,会遇到1秒的卡顿,两种方式,1是将recorder的videoSource设置成surface,但是stopRecord的时候会报sropFailed。2是将recorder的videoSource设置成Camera并且调用setCamera的方法。目测是因为Camera在preview的时候对surface的占用引起的。


问题2:

从Camera切换Recorder的时候需要在创建recorder对象之后调用camera的unlock方法,如果不加,在部分外接摄像头的设备上是正常的,可是在部分内置摄像头的上面是会报MediaRecorder的startFailed。


总结  Android对于多媒体的封装貌似对外层抛出的异常信息都不是很明确 但是基本上解决的思路都要着手于以下几点:

1:是否释放资源(资源是否被占用)。

2:对于多媒体API的配置设备是否支持。

3:多媒体API的生命周期。

基于Camera2和MediaRecorder实现视频录制 视频录制,在一般开发中很少遇到,大部分开发工作都是写写页面,请求接口,展示数据等等。真要遇到,可能采用第三方库实现,一来实现快速,二来可能觉得别人实现的比较好。特别是在开发周期很紧的情况下,一般都不会自己花时间实现。其实最好是使用手机系统的录制视频,功能完善,稳定。然后在onActiityResult方法中接收录制好的视频路径处理即可。但是,有时出于某些原因,比如不符合ui设计等等,不能使用系统自带录制功能,需要自己实现。下面将我自己实现的,记录下来。 阅读详情

相关推荐

【Android】使用 CameraX 实现基础录像功能

Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能 Android 使用 CameraX 实现基础录像功能

Talk is cheap. Show me the code 2297

Android开发笔记——视频录制播放常见问题

本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一、视频录制流程 以微信为例,其录制触发为按下(住)录制按钮,结束录制的触发条件为松开录制按钮或录制时间结束,其流程大概可以用下图来描述。 1.1、开始录制 根据上述流程及项目的编程惯例,可在onCreate()定义如下函...

weixin_30448685的博客 336

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2932

最近在使用MediaRecorder录制视频的时候遇到crash

recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置视频源 recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //recorder.setProfile(CamcorderProfile.get(CamcorderP

WavingBear 2776

桌面云架构讲解(VDI、IDV、VOI/TCI、RDS)

什么是云桌面桌面云是虚拟化技术成熟后发展起来的一种应用,桌面云通常也称为云桌面、VDI等桌面云中的云一般指的是企业的数据中心,通过在数据中心的服务器上安装若干个虚拟机,这个虚拟机就是桌面;但是终端无法直接连接到这个虚拟机(云桌面),因此就需要通过技术将就虚拟机变为桌面云发放出来;发放出来之后只需要瘦客户端(PC、手机、瘦客户机等)连接到数据中心的云桌面服务器平台,最终就可以连接到桌面来进行使用云桌面的优势终端与数据信息分离,数据在后台集中处理和存储 ,数据实现统一管理。

m0_49864110的博客 3万+

【移远EG800K-CN】从AT指令到MQTT实战:4G模块云端通信全解析

本文详细解析移远EG800K-CN 4G模块的AT指令应用与MQTT云端通信实战。从硬件连接到网络配置,再到MQTT协议的数据上报与命令接收,提供了完整的物联网通信解决方案,帮助开发者快速实现设备与云端的稳定数据交互。

o1p2q3r的博客 560

Android开发 camera被占用的问题

camera被占用问题

积跬步 至千里 1万+

告别重打包:在Android 9上实现免Root的Frida-Gadget持久化Hook(附AOSP源码修改详解)

本文详细介绍了在Android 9上实现免Root的Frida-Gadget持久化Hook技术方案。通过修改AOSP源码,绕过传统重打包方式面临的签名校验和完整性检查,实现在非Root环境下的系统级Hook。文章包含核心代码修改、编译配置调整及调试技巧,为移动安全研究提供高效稳定的解决方案。

weixin_33726313的博客 501

Android启用摄像头失败或者黑屏问题的几点原因

在 Android 开发中接触 Camera 的过程中,经常会碰到各种各样的问题,对于启用摄像头失败或者黑屏的情况,本人总结了一下几点原因,欢迎大家继续补充:   1.手机没有对应摄像头 例如手机可能只有两个摄像头,下标从0开始,Camera.open(2)打开的是第3个摄像头就会出问题 private void openCamera(int cameraFacing) thro...

阿飞的博客 2万+

块存储:AIO的直接写流程注释

提交io流程中aio_write之前函数的注释,可参考“块存储:AIO的直接读流程注释”。

yiyeguzhou100的专栏 1335

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

Camera preview变形和MediaRecorder录制视频太短崩的问题

1.预览照片被拉伸       通常,拍照预览页面的照片拉伸主要与下面两个因素有关               1.     Surfaceview的大小            2.  Camera中的Preview的大小 如果surfaceview尺寸比例跟预览尺寸比例相同,那便不会产生变形, 那么问题就来了,怎么样才能够达到适配多台手机,界面不产生拉伸变形,而且程序又不崩溃?

键盘上的烟灰的专栏 2951

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

jane0819的博客 524

MediaRecorder 录制花屏的问题

今天写了一个 视频录制的东东,在努比亚上

liulipuo的专栏 2602

大数据分析实验,包含五个子实验:wordCount实验,PageRank实验,关系挖掘实验,k-means算法,推荐系统算法。

大数据分析实验,包含五个子实验:wordCount实验,PageRank实验,关系挖掘实验,k-means算法,推荐系统算法。

806

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android camera录像,android Camera拍照 及 MediaRecorder录像 预览图像差90度

Camera拍照:今天做照相机程序,结果写好了发现出问题了,预览的图像差90度。相关源代码如下:Camera.Parameters params = camera.getParameters();params.setPreviewSize(width,height);params.setPreviewFrameRate(4);params.setPictureFormat(PixelFormat....

weixin_31202821的博客 280

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用android Camera MediaRecorder 的一些注意点

Camera.open的报错在android 6.0上面可能会有这样的一种情况,就是你把camera.open放在首页MAIN, app打开之后还没来得及提供权限,所以会报Camera.open fail的错误 MediaRecorder start fail 在android 6.0上面可能会有这样的一种情况,是在配置MediaRecorder .setVideoFrameRate时,荣耀7在

u012707450的博客 662

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MediaRecorder录制MP4文件

前言 废话不多数直接看需要啥,有啥问题。代码粘出来就完事。 需要啥 1、需要一个SurfaceView看看自己录的什么熊样 2、存储文件的路径 3、MediaRecorder录制的工具 4、Camera调调角度,前后摄像头 都啥问题注意 1、视频的预览角度 有可能你的预览角度和播放角度都有问题,跟机型有关,也是因为机型的不同可能你们的选择角度还不一样呢,那怎么处理呢?好办法当然是去找算法,去自适应的调整。这里就简单告诉你咋用就完事了, 想要调整捕获的预览角度就要申请Camera对象进行参数调整, /**

小孟来码的博客 4853

音视频学习系列第(五)篇---MediaRecorder的使用

音视频系列 什么是MediaRecorder MediaRecorder是安卓提供的一个用于音视频采集的类 在前几篇文章中,我们已经介绍了如何进行音频和视频的采集,即通过AudioRecord采集音频,通过Camera来采集视频 那么我们还为什么要介绍MediaRecorder了 前几篇文章介绍的音视频采集,采集的都是原始数据,对于音频来说是pcm数据,对于视频来说是Y...

weixin_30439131的博客 302

aac mediarecorder录制_Camera2 + MediaRecorder实现了录制视频的功能

下表是outputFormat类中的调用字段及其表示的格式对应表呼叫字段AAC_ADTSAMR_NB默认MPEG_2_TSMPEG_4THREE_GPPWEBM格式.3gp.ts.mp4.3gp.ogg格式.m4amkv①AAC(AAC低复杂度(AAC-LC)音频编)②AAC_ELD(增强型低延迟AAC(AAC-ELD)音频编)③AMR_NB(AMR(窄带)音频编)④AMR_WB(AMR(宽带)音...

weixin_28706923的博客 373

aac mediarecorder录制_音视频学习系列第(五)篇---MediaRecorder的使用

什么是MediaRecorderMediaRecorder是安卓提供的一个用于音视频采集的类在前几篇文章中,我们已经介绍了如何进行音频和视频的采集,即通过AudioRecord采集音频,通过Camera来采集视频那么我们还为什么要介绍MediaRecorder了前几篇文章介绍的音视频采集,采集的都是原始数据,对于音频来说是pcm数据,对于视频来说是YUV数据,camera中获取的是NV21,cam...

weixin_39828457的博客 512

android 摄像头进程占用,Android 录制视频 Camera占用的解决方法

Android 录制视频 Camera占用的解决方法最近需要修改项目中的视频录制功能,原来没怎么理会,可以正常录制。但是不录制直接返回Camera就会出现占用情况,而且连系统相机都无法正常使用了。只能重启手机,调试起来也比较麻烦。最后发现 由于不当的调用camera.lock()和camera.unlock()导致的看一看这两个方法的解释/*** Re-locks the camera to pr...

weixin_42503881的博客 2947

Android多媒体之录制 v&&Android系统Camera录像过程分析

http://blog.youkuaiyun.com/tankai19880619/article/details/16848135 最近调试系统Camera,遇到如下问题:在录像过程中,拔掉Camera;会出现应用程序卡死现象。   先说说之前的设计架构:   当用户拔掉Camera时,会给应用程序发送广播;当应用程序收到广播后调用Activity类的finish方法(系统会自动调用onPause方法

Gabby 2286

Android Camera2录像实战:从MediaRecorder配置到视频保存进系统相册的完整避坑指南

本文详细解析了Android Camera2录像功能的完整实现流程,从MediaRecorder配置到视频保存进系统相册的全过程。重点介绍了Camera2 API与MediaRecorder的协同工作、视频参数优化、系统相册同步等关键环节,并提供了实用的代码示例和常见问题解决方案,帮助开发者高效实现高质量视频录制功能。

weixin_33711647的博客 287

android camera 录像过程分析,Android系统Camera录像过程分析

分析下系统Camera和MediaRecorder(libstagefright中MPEG4Writer以及CameraSource的关系)。首先,通过图示、看看Android系统Camera录像时的调用时序:1.录像命令时序 2.录像数据回调时序 一、应用部分1.主Activity启动packages/apps/Camera/src/com/android/camera/CameraActivi...

weixin_36373860的博客 1004
上一篇: 更新一些git命令
下一篇: 对于java关键字volatile,和transient 的理解
androideveloper
博客等级 码龄12年 21粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值