开启或者关闭录音

Android API提供了MediaRecorder和AudioRecord两个类给开发者来很方便地实现音视频的录制(签证可以实现音频和视频的录制,后者只能实现音频的录制)。
这两个类都提供了start()和stop()方法用于开始和结束音频或视频的录制,但是这两个类都没有提供pause()方法用于暂停录制音视频。
生成的音频文件格式最好是m4a格式。
原因如下:
1、录制相同时间的音频,使用m4a格式存储的文件的大小要比使用其它格式类型存储的文件的大小要小
(在相同采样率16000的情况下,一般录制5分钟的音频,采用m4a格式存储音频文件只有1.2Mb,而采用arm、mp3及其它格式的一般都有2-5Mb),
这样当用户需要下载或上传录制的音频文件时,可以节省流量,并且相同压缩率的前提下,m4a格式音频的音质相比其它格式的也更高
2、Iphone手机官网推荐的音频格式是m4a且对m4a格式的音频文件支持度较高,如果产品同时拥有Android客户端和IOS客户端,
那为了避免使用Android客户端的用户录制的音频上传到服务器之后,使用IOS客户端的用户下载下来发生无法播放的问题需要统一格式。
所以m4a格式作为音频文件的存储格式最好。
MediaRecorder:
该类集成了录音、编码和压缩等功能,可根据设置的编码格式的参数直接生成各种格式的音频文件(如arm、mp3或m4a等),由于集成度较高,
因此使用起来简单,但灵活度不高,不能实现像AudioRecord那样进行音频的实时处理。
AudioRecord:
该类录制的音频为元素的PCM二进制音频数据,没有文件头和文件为,生成的PCM文件不能直接使用Mediaplayer播放,只能使用AudioTrack播放。
使用AudioTrack可以实现便录边播实时处理。

在6.0系统一下 无论是关闭或者打开app的录音权限都能获取到权限,6.0以下则正常,6.0以后google加强了权限管理

判断是否禁用了录音权限中出现的问题:
1、Android判断是否禁用了录音权限
通过判断分贝值是否大于0,在代码中搜索volume>0
2、部分手机在调用audioRecord.startRecording()和audioRecord.stop()方法时会抛出异常
出现上面问题的原因是录音的硬件资源被申请了,但是没有释放,然后你再申请资源,导致初始化失败。
这里需要注意的是不仅仅需要调用Release()方法,还需要把AudioRecord对象置为null,否则还是释放失败。




原文地址:
MediaRecorder和AudioRecord的区别及暂停播放功能的实现
https://www.2cto.com/kf/201410/347839.html

Android开始录音与停止录音:
https://www.cnblogs.com/gooder2-android/p/8300921.html

录音权限检测
http://www.jb51.net/article/128817.htm

录音时关闭第三方音乐
https://blog.csdn.net/chengxiuhong1/article/details/52836696

录音与播放
https://www.cnblogs.com/mythou/p/3242000.html

部分手机检查录音权限时报的异常的解决办法
http://www.cnblogs.com/mythou/p/3241925.html

判断是否禁用了录音权限
https://blog.csdn.net/xiangyihu/article/details/50951284

小米手机检测录音权限是否被禁止

http://www.dewen.net.cn/q/17269/android+使用AudioRecord+遇到录音权限被禁用


AudioRecorder实现录音、暂停、播放

https://www.2cto.com/kf/201410/347839.html


MediaPlayer报异常:java.lang.IllegalStateException

http://lovelease.iteye.com/blog/2105616

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值