Как приостановить / возобновить запись, созданную с помощью медиа-рекордера? - PullRequest
3 голосов
/ 04 ноября 2011

Я пытаюсь приостановить запись входящего звонка и возобновить его позже. Я использую andriod mediarecorder и пытаюсь записать в MPEG4. Я попытался сделать паузу / возобновить, сбросив / остановив запись и начав ее с setOutputFile(fd), fd, являющейся filedescriptor звукового файла, который был остановлен / приостановлен, и надеялся, что он добавится, но мне не повезло. Есть ли способ добиться этого или добавить две записи, или я должен отказаться от mediarecorder.

Код:

private MediaRecorder media_recorder;
private String file_path = null;

public void startRecording(path)
{
  file_path = path
  media_recorder= new MediaRecorder();
  media_recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  media_recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
  media_recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  media_recorder.setOputputFile(path);
  media_recorder.prepare();
}

public void pauseRecording()
{
  media_recorder.stop();
  media_recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  media_recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
  media_recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  FileOutputStream paused_file = new FileOutputStream(file_path);
  media_recorder.setOutputFile(paused_file.getFD());
}

public void resumeRecording()
{
  media_recorder.prepare();
  media_recorder.start();
}

pauseRecording() останавливает запись, но возобновить не удается с сообщением start failed.

1 Ответ

3 голосов
/ 04 ноября 2011

Простой ответ на ваш вопрос: НЕТ, ЧТО ВЫ НЕ МОЖЕТЕ

Once you are recording the only possible actions are stop and reset.

Поэтому попробуйте сохранить ваш вызов на SDCard после остановки, а затем сноваЗапустите Fresh Record и остановите его.Finally Combine both Audio File into one Audio file.

Запишите аудио как файл .wav и Объедините, используя этот формат .

...