Android之关于电话录音原理,目前的方法还是只能录MIC

对于android来讲,没有API直接支持对电话进行双向录音。
虽然MediaRecorder里面可以设置recodeRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);来表示要对双向进行录音,但是这个功能实际是不可使用的,唯一能直接使用的还是VOICE_MIC。也就是对MIC进行录音。现在很多的所谓录音软件应该都是用的MIC进行录音的。无论是用MediaRecorder这个类还是用的比较高级写的AudioRecord这个类。
可以参考下面这个文档对录音使用MediaRecorder设计的源代码的分析。貌似按照这里面所讲貌似这几个参数传进来直接就不支持了,需要有音频硬件的支持。
http://wenku.baidu.com/view/71d3e008844769eae009ed00 .html

目前看到的比较流行的一个CallRecord软件的说明,如果要双向录音的话,需要有硬件驱动的支持,对于某些型号的手机,这个可以通过打补丁的方式进行支持,对于其他没法打补丁的机型的话,就只能通过MIC读来支持了。
http://forum.xda-developers.com/showthread.php?t=1441643

综合上面来看,目前来讲比较通用的方法还是只能用MIC来进行双向的录音了。使用了一个使用AudioRecord进行录音的软件,不开免提的话通话录音效果还可以,对方声音还可以忍受。不过这个还是有一些噪声可以听出来。目前只能先用这个方法凑活着用了。
可以参考这个,这个程序主要功能还是把录音转成MP3,需要用外部库
http://garage.uraroji.com/2011/03/03/android上でのmp3エンコードのサンプル/

另外关于录音还有一点需要注意,在注册了电话录音状态的监听函数以后,不要在这个listen函数里面直接录音,这样的话会导致问题,系统会卡在CALL_STATE_OFFHOOK这个状态。这中lisen需要尽快的返回,可以在这里面起一个service,然service实现录音的功能,然后在idle的时候把这个service停掉,或者里面对应的录音停掉。起一个新的thread貌似也是可以的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript图片库

将图片放到网上的方法有很多,你可以简单地把所有的图片都放到网页上。但是,如果你打算发布的图片过多,这个页面很快会变的过于庞大,而且加上这些图片后用户要下载的的数据量就会变得相当可观。我们必须面对这样一个现实:没有人会等待很长长时间去下载一个网页;所以利…

驰骋表单设计器 设计表单案例演示

为什么80%的码农都做不了架构师?>>> 我们以客户提供如下原始的word表单样本,使用驰骋表单设计器制作表单的过程介绍如下:工业设计和创意需求登记表原始表单图 在ccform表单设计器中,设计如下: 驰骋表单设计器&#xf…

jquery this 与javascript的this

<div class"list"><table><thead><tr><th width"110" rowspan"2">用户名id</th><th width"155" rowspan"2">用户名</th><th width"80" rowspan"2"…

这个避孕套让生活更和谐……

1 三连暴击▼2 开塞露还能这样用&#xff1f;▼3 这真不是打架&#xff1f;▼4 送礼佳品&#xff0c;必拉黑神器&#xff01;▼5 孩子&#xff1a;爹妈&#xff0c;真的可以再考虑一下的......▼6 四只手才能拆的避孕套▼7 谭警官&#xff1a;莫挨我&#xff01;&#xff…

WPF GridControl控件的用法举例

01—前言WPF中自带的表格控件是DataGrid&#xff0c;但是格式并不是很美观&#xff0c;我们一般用Dev中类似的控件GridControl来取代&#xff0c;这个控件功能相当强大。WPF数据网格&#xff08;GridControl&#xff09;是一个数据感知控件&#xff0c;用于以不同的布局显示和编…

Android之如何ubuntu环境下在手机里面快速找到apk的位置然后拉下来

1、在手机里面通过包名找到APK的位置 adb shell pm list packages -f | grep acr -f 是文件路径的意思acr是过滤包名的apk名字结果显示package:/data/app/com.nll.acr-1/base.apkcom.null.acr2、得到apk路径之后&#xff0c;修改名字,拉倒本地 adb pull /data/app/com.nll.acr-…

《黑书》hdu1271递推习题:整数对

我能说这道题目被黑书坑了吗&#xff1f;这是递推题&#xff1f;......好吧&#xff0c;那么我是的确没有想到这样去做的。只是想着&#xff0c;可以枚举缺少的位&#xff0c;然后用搜索去解决.......但是我仔细思考&#xff0c;觉得用搜索太麻烦了&#xff0c;要处理很多细节&…

推荐我看过的几本好书给大家!(2)

继续从亚马逊盗图&#xff01;哈哈&#xff01; 这本书感觉很不错&#xff0c;对于算法&#xff0c;个人觉得还是需要掌握的&#xff0c;毕竟你不可能一辈子都做最底层的程序员吧&#xff0c;想要获得提升&#xff0c;一方面是经验的积累&#xff0c;另外一方面则是一种厚积薄发…

《SAS编程与数据挖掘商业案例》学习笔记之十四

继续《SAS编程与数据挖掘商业案例》学习笔记系列&#xff0c;本次重点&#xff1a;常用全程语句 所谓全程语句&#xff0c;是指可以用在任何地方的sas语句&#xff0c;既可以用在data数据步语句里面&#xff0c;也可以用在proc过程步里面&#xff0c;甚至可以单独使用&#xff…

细聊.NET6 ConfigurationManager的实现

前言友情提示:建议阅读本文之前先了解下.Net Core配置体系相关&#xff0c;也可以参考本人之前的文章《.Net Core Configuration源码探究 [1]》然后对.Net Core的Configuration体系有一定的了解&#xff0c;使得理解起来更清晰。在.Net6中关于配置相关多出一个关于配置相关的类…

activemq安全设置 设置admin的用户名和密码

ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件&#xff0c;找到 <bean id"securityConstraint" class"org.eclipse.jetty.http.security.Constraint"> <property name"name" value"BASIC" /> <p…

Android之在ubuntu上常用的am、pm命令的总结

adb shell am instrument [options] <COMPONENT> 作用&#xff1a;启动对instrument实例的监视。 参数[options]&#xff1a; -e <key> <value> // -e选项需要放在-w选项之前 作用&#xff1a;提供了以键值对形式存在的测试选项。Android中提供了多种键值对&…

转:IOS开发之----Xcode非ARC项目中设置部分文件ARC支持

ARC是什么 ARC是iOS 5推出的新功能&#xff0c;全称叫 ARC(Automatic Reference Counting)。简单地说&#xff0c;就是代码中自动加入了retain/release&#xff0c;原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机制在 iOS 5/ Mac OS X 10.…

将数据库设置为运行在限制模式下

将数据库设置为运行在限制模式下 如果要维护数据库的结果或者要对数据库进行数据的导出导入操作时&#xff0c;此时应该尽量限制其他会话进程&#xff0c;保证数据库的操作运行在安全状态下。同时对使用数据的库的用户也可以起到避免读取脏数据的bug。将数据库上的其他用户进程…

《SAS编程与数据挖掘商业案例》学习笔记之十六

《SAS编程与数据挖掘商业案例》学习笔记&#xff0c;本次重点&#xff1a;sas宏变量 内容包括&#xff1a;宏变量、宏函数、宏参数、通配函数、字符函数、计算函数、引用函数、宏语句、宏应用 1.宏触发器&#xff1a; %name-token:是一个宏语句或宏函数 &name-token:是一个…

C# ActionT和 FuncT委托

除了为每个参数和返回类型定义一个新委托类型之外&#xff0c;还可以使用 Action<T> 和 Func<T>委托。泛型 Action<T>委托表示引用一个 void 返回类型的方法。这个委托类存在不同的变体&#xff0c;可以传递至多 16 种不同的参数类型。没有泛型参数的 Action…

linux学习-简单命令介绍及安装VMware Tools

常用简单命令介绍 ethernet以太网pts&#xff1a;模拟终端图形界面&#xff1a;CtrlAltF1 字符界面&#xff1a;CtrlAltF2-F6切换虚拟终端&#xff1a;&#xff08;本机操作&#xff09;# chvt 1-6关闭图形界面,在纯字符界面下操作&#xff1a; init 3打开图形界面&#xff…

Android之6.0 权限申请封装

之前一篇博客初试了Android6.0系统的动态权限申请&#xff0c;成功之后开始思考将权限申请功能封装以供更加方便的调用。 查阅6.0系统权限相关的API&#xff0c;整个权限申请需要调用三个方法&#xff1a; 1. ContextCompat.checkSelfPermission() 检查应用是否拥有该权限&a…