Problèmes lors de la capture de Plusieurs Photos: application cesse de répondre, de prévisualisation de la caméra tourne au vert et aucune image n'est enregistrée
J'ai réussi à capturer la seule photo en utilisant l'appareil photo sous Android. Mais quand j'ai essayé de capturer 5 photos à la fois, l'application cesse de répondre, de prévisualisation de la caméra tourne au vert et aucune image n'est enregistrée. Ce que j'ai vu dans la trace de la pile est comme suit (partielle)
03-17 14:19:54.804:
INFO/QualcommCameraHardware(19268):
deinitPreview E 03-17 14:19:54.804:
INFO/QualcommCameraHardware(19268):
deinitPreview X 03-17 14:19:54.804:
DEBUG/QualcommCameraHardware(19268):
frame_thread X 03-17 14:19:54.834:
DEBUG/QualcommCameraHardware(19268):
snapshot_thread E 03-17 14:19:54.854:
DEBUG/CameraService(19268):
takePicture (pid 20509) 03-17
14:19:54.884:
ALERTER/AudioFlinger(19268): écrire
bloqué pour 85 msecs 03-17
14:19:55.154:
DEBUG/CameraService(19268):
postShutter 03-17 14:19:55.284:
DEBUG/CameraService(19268): postRaw
03-17 14:19:55.314:
DEBUG/QualcommCameraHardware(19268):
snapshot_thread X 03-17 14:19:55.344:
DEBUG/QualcommCameraHardware(19268):
snapshot_thread E 03-17 14:19:55.364:
DEBUG/CameraService(19268):
takePicture (pid 20509) 03-17
14:19:55.984:
DEBUG/CameraService(19268):
postShutter 03-17 14:19:56.064:
DEBUG/CameraService(19268): postRaw
03-17 14:19:56.074:
ERREUR/QualcommCameraHardware(19268):
native_jpeg_encode:
jpeg_encoder_encode a échoué. 03-17
14:19:56.074:
ERREUR/QualcommCameraHardware(19268):
le codage jpeg échoué 03-17
14:19:56.084:
DEBUG/QualcommCameraHardware(19268):
snapshot_thread X 03-17 14:19:56.154:
INFO/DEBUG(19267): * ** *
** * ** * ** * ** * 03-17 14:19:56.164: INFO/DEBUG(19267): Construire des empreintes digitales:
'google_ion/google_ion/saphir/saphir:1.6/DRC83/14721:utilisateur/adp,test des touches
03-17 14:19:56.164: INFO/DEBUG(19267):
pid: 19268, tid: 20813 >>>
/system/bin/mediaserver
...
...
...
14:19:59.894: INFO/ServiceManager(46):
service média".l'appareil est mort 03-17
14:19:59.894: ALERTER/Caméra(20509):
Serveur de caméra est mort! 03-17
14:19:59.894: ALERTER/Caméra(20509):
ICamera mort 03-17 14:19:59.894:
ERREUR/Caméra(20509): Erreur de 100 03-17
14:19:59.915: ALERTER/système de Sonorisation(71):
AudioFlinger serveur est mort! 03-17
14:20:00.014: INFO/Processus(71):
L'envoi du signal. PID: 18636 SIG: 3
03-17 14:20:00.054:
INFO/dalvikvm(18636): threadid=7:
réagissant au signal 3
Je suis l'appel de la takePicture
méthode dans une boucle pour la capture de plusieurs photos;
for(int m = 0 ; m < 6; m++) {
mPrimCamera.takePicture(null, mPictureCallbackMet, mPictureCallbackMet);
}
Je fais cela sur HTC Magic sous Android 1.6. Je pense, je suis en utilisant la mauvaise façon de prendre plusieurs photos. Quelle est la bonne façon de capturer plusieurs photos en utilisant l'Appareil photo Android API?
OriginalL'auteur Mudassir | 2011-03-17
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de l'api android supporte même un mode rafale. Une chose est sûre, vous ne pouvez pas simplement appeler
takePicture()
dans une boucle comme ça. C'est juste abuser de ces pauvres api.La façon de prendre la prochaine photo dans
onPictureTaken()
? (Bien sûr, vous devez garder une trace du nombre de photos prises, etc ..)Aime aussi le la documentation dit, ne supposez pas que cela fonctionnera sur chaque appareil.
J'ai écrit la réponse ci-dessus, en 2011, puisque l'Appareil a évolué
EDIT : le mode Rafale est maintenant pris en charge par la caméra 2 : https://developer.android.com/reference/android/hardware/camera2/package-summary.html
Voir https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html
OriginalL'auteur Reno
Vous pouvez prendre la prochaine photo seulement après la méthode de rappel de la Caméra.PictureCallback.onPictureTaken est appelé et la prévisualisation de la caméra est redémarré.
OriginalL'auteur danik
J'ai trouvé une réponse ici et il capte aussi plusieurs photos
Comment faire pour prendre plusieurs photos avant de rejeter la caméra intention?
Vous êtes les bienvenus 🙂 Bon, prenez votre temps.
OriginalL'auteur tejas
Je ne trouve pas de prise en charge des API pour cela. Et à plusieurs reprises l'appel de la
takePicture
méthode de la boucle ne fonctionne pas. Donc, je reçois une solution de contournement. Le code est encore en boucle, mais je suis maintenant à l'aide de Fil;Il peut être un vieux post, mais j'ai de commentaire pour les autres débutants que les événements sont là pour une raison de ne pas courir dans des problèmes de matériel. 3 secondes seraient peut-être pas assez sur un téléphone appareil photo qui a un obturateur. Fil de discussion.le sommeil est vraiment une mauvaise pratique et je ne pense pas que le marquage de votre propre réponse comme correcte est bon quand il est douteux code.
OriginalL'auteur Mudassir