我正在尝试在来电时暂停录音并稍后恢复。我正在使用安卓的
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
”的错误提示。
mEncoder
或ffmpeg
移植到安卓系统,并尝试合并它们,这似乎是一个可行的解决方案。 - Pannu