Lors de l'utilisation MediaRecorder
, on n'a pas de pause/reprise pour le niveau de l'API ci-dessous 24. Donc, il peut y avoir une façon de le faire est la suivante:Pause et Reprendre avec Android MediaRecorder (niveau API <24)
- Lors d'un événement de pause, arrêtez l'enregistreur et créez le fichier enregistré.
- Et à la reprise, recommencez l'enregistrement et créez un autre fichier et continuez jusqu'à ce que l'utilisateur appuie sur stop.
- Et enfin fusionner tous les fichiers.
Beaucoup de personnes ont posé cette question sur SO, mais n'ont pas réussi à trouver quoi que ce soit pour résoudre ce problème. Les gens parlent de créer plusieurs fichiers multimédias en arrêtant l'enregistrement sur l'action de pause et en redémarrant sur le CV. Donc, ma question est Comment pouvons-nous fusionner/joindre tous les fichiers multimédia par programme?
Remarque: dans mon cas Conteneur MPEG4 - m4a pour l'audio et mp4 pour la vidéo.
J'ai essayé d'utiliser SequenceInputStream
pour fusionner plusieurs InputStream de fichiers enregistrés générés respectifs. Mais il résulte toujours le premier fichier seulement.
Code Snippet:
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();
Copie possible de [Pause et reprise de l'enregistrement audio sur Android] (https://stackoverflow.com/questions/5743165/pause-and-resume-audio-recording-in-android) – soshial