を再開し、我々は24 以下のAPIレベルのための一時停止/再開を持っていないので、これを行う方法があることができます:ポーズ&AndroidのMediaRecorder(APIレベル<24)
- 一時停止中にレコーダーを停止し、録音ファイルを作成します。
- また、レジュームを再開して別のファイルを作成し、ユーザーが停止するまで続けます。
- 最後にすべてのファイルをマージします。
多くの人がこの問題をよく尋ねましたが、これを解決するためには何も見つかりませんでした。人々は、一時停止操作で記録を停止し、再開時に再開することによって、複数のメディアファイルを作成することについて話します。だから私の質問はどのように私たちはマージ/参加するすべてのメディアファイルをプログラムでですか?
私のケースでは、 MPEG4コンテナ - オーディオ用mp4とビデオ用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