Je construis une application qui va contenir un tampon de 60 secondes de vidéo enregistrée. L'enregistrement vidéo doit durer longtemps (24 à 48 heures). Je ne semble pas avoir de problèmes avec l'enregistrement, mais il semble que je perds la connexion avec mon Camera
ou Surface
après quelques heures de temps.Enregistrement vidéo sans fin
Je règle la durée maximale: MediaRecorder.setMaxDuration(10 * 1000)
afin que l'enregistrement soit décomposé en segments de 10 secondes.
Chaque fois que je relance mon enregistrement, j'augmente le fichier de sortie de telle sorte que 6 fichiers soient réutilisés. Le but est de garder une histoire de 60 secondes en tout temps.
Si j'arrête l'enregistrement après 1 à 2 heures, les vidéos sont lues correctement. Cependant, si je le laisse fonctionner pendant 3-4 + heures et que j'arrête l'enregistrement, les vidéos ne montrent que la sortie noire avec l'audio. En d'autres termes, c'est comme si elle a perdu une connexion avec l'appareil photo ou la surface mais a continué l'enregistrement audio.
Quelqu'un peut-il expliquer ce comportement?
Si rien d'autre, est-il un meilleur moyen d'enregistrer X deuxièmes segments de vidéo?
FYI: J'utilise un verrouillage de réveil pour que l'écran/l'UC restent allumés.
Je n'ai jamais rien essayé de tel. Mais si vous pouvez obtenir 1-2 heures sans problème, une solution rapide et sale ressemble à finish() et redémarre votre activité d'enregistrement. Mais cela va vous laisser une lacune dans la vidéo enregistrée qui est la taille de votre temps de démarrage de l'activité. Si vous avez 2 appareils, vous pouvez enregistrer à partir des deux temps de redémarrage? – FoamyGuy
Hmm, idée intéressante. En réalité, je crois que je pourrais faire quelque chose dans le désordre avec les opérations d'enregistrement. Comme dans, il pourrait * normalement * être capable de se reconnecter à la caméra, mais il pourrait y avoir 1% de cas où il devance lui-même (MediaRecorder n'a pas fini d'écrire/fermer le fichier de sortie quand j'essaie de recommencer l'enregistrement) –