picture - prendre une photo android studio




W/CameraBase: Une erreur s'est produite lors de la connexion à la caméra: 0 lors de l'appel de camera.open() (4)

Pour utiliser la méthode suivante

android.hardware.Camera.open(int cameraId)

Vous devez passer cameraId, Si vous voulez l'identifiant de la caméra frontale, vous pouvez utiliser la méthode suivante

private int findFrontFacingCamera() {

    // Search for the front facing camera
    int numberOfCameras = Camera.getNumberOfCameras();
    for (int i = 0; i < numberOfCameras; i++) {
        CameraInfo info = new CameraInfo();
        Camera.getCameraInfo(i, info);
        if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
            cameraId = i;
            cameraFront = true;
            break;
        }
    }
    return cameraId;
}
  1. Si la même caméra est ouverte par d'autres applications, une exception RuntimeException sera lancée.

  2. Vous devez appeler release () lorsque vous avez fini d'utiliser la caméra, sinon elle restera verrouillée et ne sera pas disponible pour d'autres applications.

  3. Votre application ne doit avoir qu'un seul objet Caméra actif à la fois pour une caméra matérielle particulière.

J'écris une application appareil photo et à chaque fois que j'appelle camera.open (), l'application se bloque et je reçois cette erreur:

W/CameraBase﹕ An error occurred while connecting to camera: 0

Voici comment j'ouvre la caméra:

public void getCameraInstance(){
    mCamera = null;

    try 
    {
        mCamera = Camera.open(); // attempt to get a Camera instance
    }

    catch (Exception e)
    {
        // Camera is not available (in use or does not exist)

    }
}

METTRE À JOUR:

Si vous lisez ceci, veuillez noter que ceci est pour l'API originale de la caméra et ne s'applique plus à la dernière version de la caméra api (camera2).

Vous devriez utiliser l'API camera2 à partir de ce moment car il a une plus grande fonctionnalité et dispose également d'un meilleur pipeline de traitement d'image.

NOTE VALABLE JUSQU'À l'exclusion de API 21 (Lolipop), c'est-à-dire ne s'applique pas à Lolipop et au-dessus.


assurez-vous que votre application a l'autorisation pour la caméra, par exemple

<uses-permission android:name="android.permission.CAMERA"/>

dans AndroidManifest.xml


Dans Android 6, assurez-vous de demander la permission pour l'appareil photo. L'accès à la caméra est considéré comme l'une des «autorisations dangereuses» .


Vous avez téléchargé manuellement votre application sur le téléphone. C'est pourquoi l'autorisation de l'appareil photo n'est pas approuvée. Vous devez ouvrir les paramètres-> applications (ou quelque chose comme ça) et approuver manuellement cette permission.