SurfaceView avec prévisualisation de la caméra n'est pas détruit
J'ai un Onglet Activité avec 2 onglets (activités). Chaque onglet est un 3d Open GL scène tiré sur le dessus d'une SurfaceView avec prévisualisation de la caméra.
Encore, selon l'orientation du périphérique, les onglets sont en train d'être réglé.
Le problème est que lorsque l'autre le début de l'activité, il appelle à la caméra.open(), ce qui génère une exception, en disant que la caméra de service n'est pas disponible.
En fait, le problème, c'est que la caméra n'est pas arrêté quand l'activité est suspendue, en d'autres termes onSurfaceDestroyed() n'est pas appelée pour les SurfaceView.
J'ai essayé d'arrêter l'appareil photo lorsque onPause() pour des activités est appelé, mais obtenir la même erreur encore.
Quelqu'un avait même des problèmes avec onglets activités? Une idée de comment faire surfaceview se détruit?
.stopPreview()
et .release()
sur votre appareil photo de l'objet?Oui, voir code ci-dessous.
OriginalL'auteur Kirill Volkov | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Il ressemble à cette question est assez populaire, donc, je suis en ajoutant la solution ici, une fois de plus.
La cause était que surfaceDestroyed n'a jamais été appelé pour SurfaceView lors de l'application a été mise en pause.
J'ai donc créé un framelayout qui contient toutes les vues enfant.
Définir comme l'affichage du contenu.
Encore arrêter la caméra en appelant simplement setVisibility(View.DISPARU) dans onPause() et la Vue.Visible dans onResume(). Cela conduira à la destruction de SurfaceView.
OriginalL'auteur Kirill Volkov
Merci beaucoup pour cette. J'ai eu le problème sur le Sony Ericsson Xperia mini USB activer/désactiver le menu de la liste déroulante de la barre de notification en pause mon app photo, mais n'a pas détruit la surface. Étonnamment, seulement l'activer/désactiver le menu a cette question, l'USB debug menu paramètres s'est comporté correctement. À l'aide de setVisibility() comme vous l'avez décrit directement pour la SurfaceView pour la prévisualisation de la caméra résolu complètement le problème.
OriginalL'auteur Kirill Volkov
c'est OK pour moi:
OriginalL'auteur pandes