начать запись голоса при исходящем звонке и завершить запись при исходящем звонке - PullRequest
0 голосов
/ 27 марта 2019

Мне трудно записывать голос по телефону.проблема в том, что запись началась довольно хорошо, но когда

срабатывает onOutgoingCallEnded при выходе из телефонного звонка, я записываю записывающее устройство, но журнал показывает ноль, и я проверял аудиофайл, но он записывал только 2 ~ 3 секунды, хотя я и сделалтелефонный звонок более 15 секунд.

У меня есть код, который определяет начало исходящего вызова и конец исходящего вызова.и я реализовал код записи голоса

, как показано ниже.

@Override
protected void onOutgoingCallStarted(Context ctx, String number, 
 Date start) {

    Log.e("dialog","status : onOutgoingCallStarted");
    recorder = new MediaRecorder();
    String out = new SimpleDateFormat("dd-MM-yyyy hh-mm-ss").format(new Date());
    File sampleDir = new File(Environment.getExternalStorageDirectory(), "/TestRecordingDasa1");
    if (!sampleDir.exists()) {
        sampleDir.mkdirs();
    }
    String file_name = "Record";
    try {
        audiofile = File.createTempFile(file_name, ".mp4", sampleDir);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String path = Environment.getExternalStorageDirectory().getAbsolutePath();
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile(audiofile.getAbsolutePath());
    try {
        recorder.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Toast.makeText(ctx.getApplicationContext(),"record started",Toast.LENGTH_SHORT).show();

    recordstarted = true;
    recorder.start();
    Log.e("dialog","record:"+recorder.toString());


}
@Override
protected void onOutgoingCallEnded(Context ctx, String number, Date start, Date end) {
    Log.e("dialog","status : onOutgoingCallEnded"+recorder.toString());
    Toast.makeText(ctx.getApplicationContext(),"record stop"+recordstarted,Toast.LENGTH_SHORT).show();
    if(recorder!=null){
        recorder.stop();
    }
}

Я думаю, что весь голос должен быть записан в файл, когда начинается и заканчивается телефонный звонок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...