【问题标题】:How can I modify the MediaRecorder source to allow pause/resume recording如何修改 MediaRecorder 源以允许暂停/恢复录制
【发布时间】:2015-08-26 11:21:23
【问题描述】:

是否可以修改 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 的方法有什么问题吗?我怎样才能更新我的暂停/恢复没有预览闪烁?提前致谢。

【问题讨论】:

    标签: java android append mediarecorder


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

    【讨论】:

      猜你喜欢
      • 2015-12-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2022-08-12
      相关资源
      最近更新 更多