2017-08-31 4 views
6

J'ai essayé l'exemple d'application android-Camera2Basic de Google. Pour la caméra frontale obtenir des travaux, j'ai changé de code dans Camera2BasicFragment. Les changements sont les suivants.Camera2Basic caméra frontale de l'application prend l'image vers le bas

Pour Passer à la caméra frontale J'ai changé mCameraId = cameraId; à mCameraId = "1"; en setUpCameraOutputs(int width, int height) méthode.

et a ajouté sur si la condition à la fin de setUpCameraOutputs(int width, int height) comme,

if(mCameraId == null) 
    mCameraId = cameraId; 

Ce changement montre caméra frontale parfaitement mais ne capte pas la photo. Donc, je l'ai remplacé

mCaptureSession.capture(mPreviewRequestBuilder.build(), mCaptureCallback, 
         mBackgroundHandler); 

à

captureStillPicture(); 

dans lockFocus(). Maintenant, la caméra avant sélectionne la photo, mais elle regarde à l'envers.

Ex: sample image

Je ne sais pas quoi faire maintenant? Toute aide sera grandement appréciée.

En fait, mon exigence est de photo de capture dans les deux caméras en utilisant camera2 api. Donc, si j'ai fait quelque chose de mal, corrigez-moi.

Et dans certains appareils, cette application prend plus d'une photo en un seul clic.

Répondre

2

supprimer la condition ci-dessous et initialiser la caméra par défaut au niveau mondial et supprimez également la boucle.

if(mCameraId == null) { 
    mCameraId = cameraId; 
} 
2

la boucle juste retiré for de setUpCameraOutputs Et aussi enlevé le if(mCameraId == null) mCameraId = cameraId;.

Le problème est maintenant résolu.

Merci