Пауза и возобновление с Android MediaRecorder (уровень API <24)

При использованииMediaRecorderу нас нет паузы / возобновления для уровня API ниже 24. Так что может быть способ сделать это:

В случае паузы остановите рекордер и создайте записанный файл.И после возобновления снова начните запись, создайте другой файл и продолжайте делать это, пока пользователь не остановит нажатия.И наконец объедините все файлы.

Многие люди задавали этот вопрос на SO, но не могли найти решение этой проблемы. Люди говорят о создании нескольких медиа-файлов, останавливая запись в режиме паузы и перезапуская при возобновлении. Поэтому мой вопрос: как мы можем объединить / объединить все медиа-файлы программно?

Замечания: в моем случае контейнер 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();

Ответы на вопрос(2)

Ваш ответ на вопрос