Como pausar / retomar uma gravação criada com o mediarecorder?
Estou tentando pausar uma gravação em uma chamada recebida e retomar mais tarde. estou usando o andriodmediarecorder
e tentando gravar emMPEG4
. Tentei pausar / retomar redefinindo / interrompendo uma gravação e iniciando-a com osetOutputFile(fd)
, fd
sendo ofiledescriptor
do arquivo de áudio que foi parado / pausado e esperava que fosse acrescentado, mas não tive sorte. Existe uma maneira de conseguir isso ou anexar duas gravações ou devo desistir demediarecorder
.
código
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()
interrompe a gravação, mas o currículo falha com a mensagemstart failed
.