2017-11-22 17 views
6

녹음을 위해 Android 앱을 개발 중입니다. 이것은 내 코드 조각입니다. 안드로이드 7의 녹음 된 통화에서 들어오는 음성을들을 수 없습니까?

recorder = new MediaRecorder(); 
    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    recorder.setOutputFile(file_path); 

은 안드로이드 7 아래 장치 완벽하게 작동하고,하지만 안드로이드 7 개 모바일 장치 를 사용할 때 난 단지 나가는 음성의 소리를들을 수 있지만 들어오는 음성를들을 수 없습니다.

누구든지 나를 고칠 수 있습니까?

답변

1
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

1

음을 사용해보십시오 문제 만 분명히 바로 나가는 음성에있는 코드와 마이크 입력을 기록하는 것입니다. 수신 음성을 녹음하려면 시스템 사운드도 녹음해야합니다.

시스템 사운드를 녹음하려면 약간의 시간이 필요합니다. 다음은 시작하는 할 몇 가지 유래의 링크입니다 :

을 결국, 당신은 또한 전체 전화를 가지고 하나 개의 파일에 두 개의 사운드 트랙을 병합해야 할 것 하나로서.

+0

이것은 bellow android 7 devices에서 작동합니다. –

+0

게시 한 코드가 마이크 입력 사운드 만 기록하기 때문에 다른 이유가 있어야합니다. – Twometer

3

가 VoIP와 같은 음성 통신을 위해 조정 마이크 음원 그대로를 AudioSource으로 사용 VOICE_COMMUNICATION, as described on Android Developers site.

I가 VOICE_CALL 사용하여 시도

(오디오 상하향 기록 사용)하지만, 시스템 구성 요소에 의해서만 만 사용될 수있다 따라서 마이크는 오디오 녹음 옵션입니다.

TRY :
1 : 통화 중에 볼륨 슬라이딩.
2. 어떤 경우에는 오디오를 녹음하지 않으므로 헤드폰을 사용하지 마십시오. [시도하지 않았습니다]. 모토 G4 재생에 3. 작품, 안드로이드 버전 7.1.1 (Motorola 휴대폰의 대부분은 두 개의 마이크가) :

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION); recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

+0

이 (가) 아직 시도했지만 여전히 작동하지 않습니다. :/ –

+0

나는 당신이 나가는 음성을 녹음 할 수 있기 때문에 당신이 사용하고있는 전화에 문제가 있다고 생각한다. 휴대 전화의 마이크 배치는 정상 모드에서 수신을 녹음 할 수없는 방식입니다. 스피커폰을 사용해 보셨습니까? –

1

이 코드는 API 25에 내장 된 안드로이드 7에 대한 매력처럼 작동

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
recorder.setAudioSamplingRate(8000); 
recorder.setAudioEncodingBitRate(12200); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);