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

Android系统并未提供直接的电话双向录音API,MediaRecorder的VOICE_CALL源并不支持。大部分录音应用利用MIC进行录音,如AudioRecord。硬件驱动支持是实现双向录音的关键,部分手机可能需要补丁。使用AudioRecord在不开免提情况下录音效果尚可,但存在噪音。录音转MP3需借助外部库,并注意电话监听函数不应直接启动录音,以免系统卡在呼叫状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于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貌似也是可以的。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值