开题我可以很认真负责任的告诉业务层发开的小伙伴“不能”,不用再去搜索那些双向通话录音的资料了!
Android里面录音功能Api有两种实现方式分别是MediaRecorder和AudioRecord,这两天翻阅资料看来看去他们有一个共同的方法,设置音频源setAudioSource()。
MediaRecorder.AudioSource.VOICE_CALL
今天我们来重点说说这个函数,在手机的系统电话录音功能中使用的事MediaRecorder来录制通话:
这里setAudioSource()方法中传递的参数是4,这又是什么鬼?我们来接着往下看!
这个参数官方给的解释是
中文翻译是:语音通话上行+下行音频源,我个人的理解就是上行下行,已方和对方的音频源,那么问题就迎刃而解的我也设置上这个属性不就行了吗,然而我的实现结果告诉我的却是:
我们重点来看这个错误:
我们再来看看官方的这个日志输出的地方:
why???为什么没有处理MediaRecorder.AudioSource.VOICE_CALL这个函数!!!
这个时候我就有点头晕目眩了,在来回头看看VOICE_CALL:
This permission is reserved for use by system components and is not available to third-party applications.
不需要我在放大点看吧,但我还是要给小伙伴们翻译一遍!
意思是:此权限仅供系统组件使用,不可用于第三方应用程序!!!
我这时候内心有一万个草泥马在奔腾,也就是说这个函数智能适用于系统级别的应用使用,咱们一个小开发在大能耐也拧不过大腿啊,对于我们开发人员来讲你挡住了我们的显示方式我内心就回问候问候你的亲人,但这个确实是涉及到了比较敏感的权限和个人隐私问题还是可以理解一下的,而且据我调查由于国外的法律限制谷歌早就把这个函数给限制了,这也应该是为什么谷歌从6.0以后对权限问题的处理越来越严谨的原因了。
个人建议:有这个功能的小伙伴趁早组织好语言和产品准备一轮PK(砍掉此功能!!!)最终的结果就看自己能耐了,不说了我得去和产品掰扯了!
网友评论