MediaRecorder
을 사용하는 동안, 우리는 그렇게 할 수있는 방법이있을 수있다 (24) 아래 API 수준에 대한 일시 정지/다시 시작이없는 것은 :(API 레벨 <24)
- 일시 중지 이벤트에서 레코더를 중지하고 녹음 된 파일을 만듭니다.
- 다시 시작하면 다시 녹음을 시작하고 다른 파일을 만들고 사용자가 중지 할 때까지 계속합니다.
- 그리고 마지막으로 모든 파일을 병합합니다.
많은 사람들이이 질문에 답변했지만 어쨌든이를 해결할 수 없습니다. 사람들은 일시 중지 동작에서 녹음을 중지하고 이력서에서 다시 시작하여 여러 미디어 파일을 만드는 방법에 대해 이야기합니다. 그래서 내 질문은 어떻게 우리가 병합/모든 미디어 파일을 프로그래밍 방식으로 가입 할 수 있습니까?
내 경우에는 MPEG4 컨테이너 - 오디오 용 m4a 및 비디오 용 mp4.
SequenceInputStream
을 사용하여 생성 된 각 기록 파일의 다중 InputStream을 병합하려고했습니다. 그러나 항상 첫 번째 파일 만 생성합니다.
코드 조각은 :
Enumeration<InputStream> enu = Collections.enumeration(inputStreams);
SequenceInputStream sqStream = new SequenceInputStream(enu);
while ((oneByte = sqStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, oneByte);
}
sqStream.close();
while (enu.hasMoreElements()) {
InputStream element = enu.nextElement();
element.close();
}
fileOutputStream.flush();
fileOutputStream.close();
[Android에서 오디오 녹음 일시 중지 및 다시 시작] (https://stackoverflow.com/questions/5743165/pause-and-resume-audio-recording-in-android)의 가능한 복제본 – soshial