Я разработал приложение для Android для видеозвонков через WebRTC, которое работает нормально.Теперь необходимо записать аудио звонка и сохранить его на внешнем носителе.Я попробовал MedieRecorder, который записывает аудио и сохраняет его, но столкнулся с одной проблемой здесь.когда я начинаю запись аудио, голос останавливается на стороне ресивера.Media Recorder не позволил webrtc использовать микрофон.
Я попробовал следующий код.
private boolean startMediaRecorder(){
recorder = new MediaRecorder();
try{
recorder.reset();
//recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setAudioSamplingRate(8000);
recorder.setAudioEncodingBitRate(12200);
//recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
//recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
// String fileName = audiofile.getAbsolutePath();
String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" +
CreateRandomAudioFileName(5) + "AudioRecording.3gp";
recorder.setOutputFile(fileName);
MediaRecorder.OnErrorListener errorListener = new MediaRecorder.OnErrorListener() {
public void onError(MediaRecorder arg0, int arg1, int arg2) {
Log.e(TAG, "OnErrorListener " + arg1 + "," + arg2);
// terminateAndEraseFile();
}
};
recorder.setOnErrorListener(errorListener);
MediaRecorder.OnInfoListener infoListener = new MediaRecorder.OnInfoListener() {
public void onInfo(MediaRecorder arg0, int arg1, int arg2) {
Log.e(TAG, "OnInfoListener " + arg1 + "," + arg2);
//terminateAndEraseFile();
}
};
recorder.setOnInfoListener(infoListener);
recorder.prepare();
// Sometimes prepare takes some time to complete
Thread.sleep(2000);
recorder.start();
isRecordStarted = true;
return true;
}catch (Exception e){
e.getMessage();
return false;
}
}
Я также попытался `recordder.setAudioSource (MediaRecorder.AudioSource.MIC);// Recorder.setAudioSource (MediaRecorder.AudioSource.VOICE_CALL);
Как я могу записать звук во время вызова WebRTC?Любая помощь будет оценена по достоинству.спасибо