如何修改MediaRecorder源以允许暂停/恢复录制

时间:2015-06-10 23:58:55

标签: java android append mediarecorder

是否可以修改MediaRecorder源以允许暂停/恢复录制?我认为修改这个课程是不可能的,但最近我被告知它是。我的问题是,为什么我要修改MediaRecorder类,只是不扩展它然后编写额外的逻辑?我将为暂停/恢复录音添加的基本逻辑将是这样的,

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();
} 

这个问题是预览闪烁。所以我基本上有三个问题。可以直接修改源代码吗?我的扩展MediaRecorder的方法有什么问题吗?如何更新暂停/恢复以避免预览闪烁?提前谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 你可以修改源代码,问题是你无法将框架源代码编译到你的apk中并在运行时替换框架。所以不要这样做。
  2. 你用一个文件记录每件作品吗?你需要将每一块记录到分离的文件中,否则就会发生“预览闪烁”。
  3. 如果你想联系所有的一个文件,你需要以PCM格式录制(或者你需要自己处理文件头),并确保扬声器在每个部分之前和之后添加静音。