Dans le projet, l'appareil doit pouvoir enregistrer en arrière-plan, mais une fois que l'application entre en arrière-plan, la vue de surface sera détruite. Ouvrez à nouveau l'application et la vue de surface sera recréée. Vous devez exécuter camera.stopPreview. et camera.starPreview dans la méthode surfaceCreated(), sinon l'écran sera noir. Le problème est que si vous faites cela, le fichier vidéo enregistré ne peut pas être lu car la caméra effectue une opération stopPreview au milieu.
Quelqu'un peut-il me donner une idée pour résoudre ce problème ?
Eh bien, il est recommandé d'utiliser FloatingWindow pour atteindre l'objectif de "l'enregistrement en arrière-plan". Essayez d'accrocher cette surfaceView sur la fenêtre flottante, maximisez la fenêtre flottante lors de la prévisualisation de l'interface, et une fois que l'utilisateur quitte l'application et passe en mode arrière-plan, réglez la fenêtre flottante à la taille. Il s'agit d'une fenêtre de 1 pixel et l'enregistrement est toujours en cours à ce moment-là. Il n'est pas nécessaire de changer l'état de la caméra. Naturellement, les fichiers enregistrés ne seront pas découpés.
Je ne sais pas si cette application fonctionne sur le téléphone ou sur l'appareil de la voiture ?