通话录音,真是奇怪的行为

时间:2015-03-01 23:50:59

标签: android call audio-recording

任务是录制电话。

除了以下代码之外的其他所有内容都正常工作:来电事件,去电事件,拒绝来电等等,所以我的问题出在音频录制过程中。

代码:

mediaRecorder = new MediaRecorder();

mediaRecorder.setAudioSource(AudioSource.VOICE_CALL);

boolean AAC_SUPPORTED = Build.VERSION.SDK_INT >= 10;

if (AAC_SUPPORTED) {
    mediaRecorder.setAudioSamplingRate(44100);
    mediaRecorder.setAudioEncodingBitRate(96000);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
} else {
    mediaRecorder.setAudioSamplingRate(8000);
    mediaRecorder.setAudioEncodingBitRate(12200);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
}

这是一个奇怪的莫名其妙的部分:

人A呼叫人B.亲自电话记录的.mp4文件是完美的。两侧音频清晰响亮。但是然后人员B呼叫人A.我们仍然在A人的电话上。同样的录音代码正在运行,但这次其他人的声音没有被录制或录制的质量非常差。

所以拨打电话是完美的,但是在来电中,无论是否执行相同的代码,其他人的语音都不会录音。

两款手机的操作系统版本均为4.4.4

我为setAudioSource();

测试了所有参数

有没有:

mediaRecorder.setAudioSamplingRate(44100);
mediaRecorder.setAudioEncodingBitRate(96000);

我从使用此intent-filter声明的Receiver中运行代码:

<intent-filter>
    <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
    <action android:name="android.intent.action.ACTION_ANSWER"/>
    <action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>

有没有人知道问题所在?

我用另一个Call Recorder应用程序测试了这个场景,一切都很好。所以它不是特定于设备的。必须有一些我做错的事。

0 个答案:

没有答案