Pausar e retomar com o Android MediaRecorder (nível de API <24)

Enquanto estiver usandoMediaRecorder, não temos uma pausa / resumo para o nível da API abaixo de 24. Portanto, pode haver uma maneira de fazer isso:

No evento de pausa, pare o gravador e crie o arquivo gravado.E, no resumo, comece a gravar novamente, crie outro arquivo e continue fazendo isso até o usuário pressionar para.E, finalmente, mesclar todos os arquivos.

Muitas pessoas fizeram esta pergunta no SO, mas não conseguiram encontrar uma maneira de resolver isso. As pessoas falam sobre a criação de vários arquivos de mídia, parando a gravação na ação de pausa e reiniciando o currículo. Portanto, minha pergunta é: como podemos mesclar / juntar todos os arquivos de mídia programaticamente?

Nota: no meu caso contêiner MPEG4 - m4a para áudio e mp4 para vídeo.

Eu tentei usarSequenceInputStream para mesclar vários InputStream dos respectivos arquivos gravados gerados. Mas sempre resulta apenas no primeiro arquivo.

Fragmento de código:

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();

questionAnswers(2)

yourAnswerToTheQuestion