java - 如何暂停/恢复使用 mediarecorder 创建的录音?

标签 java android append audio-recording mediarecorder

我正在尝试暂停对来电的录音,稍后再恢复。我正在使用 andriod mediarecorder 并尝试以 MPEG4 格式进行录制。我尝试通过重置/停止录音来暂停/恢复,并使用 setOutputFile(fd) 启动它,fd 是音频文件的 filedescriptor那被停止/暂停并希望它会 append 但我没有运气。有没有办法实现这个或 append 两个录音,或者我应该放弃 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

最佳答案

你的问题的简单答案是不,你不能

一旦开始录制,唯一可能的操作就是停止和重置。

因此,尝试在 Stop 后将 Call 保存到 SDCard,然后再次启动 Fresh Record 并 Stop it。 最后将两个音频文件合并为一个音频文件

将音频录制为 .wav 文件和 Combine using this format .

关于java - 如何暂停/恢复使用 mediarecorder 创建的录音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007682/

相关文章:

java - 如何在android中循环遍历JSON参数

java - 设置socket opt failed bad file number异常

android - 如何将主页按钮和应用程序切换器按钮功能赋予自定义按钮?

android - 每个 Android 设备上的应用程序是否有任何永久不可移动的全局存储可用?

javascript - 如何从同一目录中的 javascript 文件将 javascript 文件 append 到正文。 Java 服务器面向 2 JSF2

python - 如何跳过循环中的项目

java - 从 GWT 进行 jdbc 调用的正确方法?

java - 如何 JUnit 测试 Wicket 页面

java - append 到 ObjectOutputStream

java - Spring 4 ControllerAdvice 和 InitBinder