Я пытаюсь записывать вызовы на android мобильных телефонах, поэтому, ссылаясь на этот вопрос о стекере Как записывать телефонные звонки в android? Я использовал следующий код, хотя он отлично работает, но записанный звук останавливается примерно через 40-50 секунд звука, но сам файл имеет продолжительность звонка, я пробовал приложение на разных мобильных телефонах с разными версиями android, также пробовал разные реализации, такие как создание службы, намерение и отображение уведомления о том, что я ' m запись.
Я искал в inte rnet рекордеры с открытым исходным кодом и нашел BeatriceFendt / android -call-рекордер , так что я построил его, и точно так же происходит, звук останавливается через 40-50 секунд, и продолжительность записи совпадает с продолжительностью вызова.
private void startRecording() {
File sampleDir = new File(Environment.getExternalStorageDirectory(), "/TestRecordingDasa1");
if (!sampleDir.exists()) {
sampleDir.mkdirs();
}
String file_name = "Record";
try {
audiofile = File.createTempFile(file_name, ".amr", sampleDir);
} catch (IOException e) {
e.printStackTrace();
}
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
recorder = new MediaRecorder();
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(audiofile.getAbsolutePath());
try {
recorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start();
recordstarted = true;
}