其他用户的声音正在低音录音

时间:2018-06-29 10:42:15

标签: android service android-mediarecorder call-recording

我创建了一个记录服务来记录呼叫声音,但我发现它不仅记录语音,还记录附近的声音。而我正在向谁打电话的声音也太慢了,以至于我无法正确录制。

我已经完成了google工作,尝试了很多示例,并更改了 AudioEncodingBitRate AudioSamplingRate ,但仍未发现任何更改。请帮我。我也使用过 RehearsalAudioRecorder 。我的代码正在

 private void startRecording(int callType) {
    Log.d(Constants.TAG, "RecordService startRecording");

    try {
        ContactDataSource dataSource = new ContactDataSource();
        recordingAllowedForNumber = dataSource.getRecordingAllowed(UserSQLiteHelper.geReadableInstance(AppContext.getInstance()), phoneNumber);
        if (recordingAllowedForNumber == false) {
            boolean isknownCall = dataSource.isknownCall(UserSQLiteHelper.geReadableInstance(AppContext.getInstance()), phoneNumber);
            recordingAllowedForNumber = !isknownCall;
        }
        if (recordingAllowedForNumber) {
            ApplicationUtils.logE("Recording is allowed for the number  : "  );
            boolean isRecordingStarted = startRecording(1, callType);
            if (isRecordingStarted == false) {
                isRecordingStarted = startRecording(2, callType);
                if (isRecordingStarted == false) {
                    isRecordingStarted = startRecording(3, callType);
                }
            }
        }
    } catch (Exception e) {
        ApplicationUtils.log("Failed to set up recorder." + e.getMessage());
    }
}



private boolean startRecording(int voiceCallType, int callType) {
    boolean isRecordingStarted = true;
    recorder = null;
    recorder = new MediaRecorder();

    try {
      switch (voiceCallType) {
            case 1:
                ApplicationUtils.logE("Deault ");
                recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
                break;
            case 2:
                ApplicationUtils.logE("MIC ");
                recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                break;
            case 3:
                ApplicationUtils.logE("VOICECALL ");
                recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
                break;
           /* case 4:
                ApplicationUtils.logE("camcorder ");
                recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
                break;*/
        }

        ApplicationUtils.log("Chandni voiceCallType = " + voiceCallType);

        int type = UserPreferences.getVoiceExtensionType();
        ApplicationUtils.logE("Aakansha - type of call " + type);
       switch (type) {
            case UserPreferences.GP_3_EXTENSION:
                recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                break;
            case UserPreferences.MPEG_4_EXTENSiON:
                recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
                break;
            default:
                recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

        }


        if (Build.VERSION.SDK_INT >= 10) {
            recorder.setAudioSamplingRate(44100);
            recorder.setAudioEncodingBitRate(16 * 44100);

            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        } else {
            // older version of Android, use crappy sounding voice codec
            recorder.setAudioSamplingRate(8000);
            recorder.setAudioEncodingBitRate(12200);

            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        }

0 个答案:

没有答案