100 votes

Android : Comment utiliser la webcam dans l'émulateur ?

Je connecte une webcam à mon émulateur en réglant la caméra frontale sur "webcam0" dans le gestionnaire AVD. Lorsque je lance l'application caméra de l'émulateur, j'obtiens l'erreur suivante

CameraService::connect X (pid 702) rejected (invalid cameraId 0).

Voici la partie concernée du code source d'Android :

sp<ICamera> CameraService::connect(
    const sp<ICameraClient>& cameraClient, int cameraId) {

    int callingPid = getCallingPid();

    [...]

    if (cameraId < 0 || cameraId >= mNumberOfCameras) {
        LOGE("CameraService::connect X (pid %d) rejected (invalid cameraId %d).",
            callingPid, cameraId);
        return NULL;
    }

    [...]
}

La webcam s'est vu attribuer correctement un ID de 0 car il n'y a qu'une seule caméra. Cependant, mNumberOfCameras est vraisemblablement toujours 0. Cela signifie que la caméra est enregistrée par l'émulateur, mais qu'il n'a pas pris la peine de mettre à jour le nombre de caméras connectées.

Comment puis-je connecter une webcam pour qu'elle soit correctement reconnue par l'émulateur ?

Edit : la commande emulator -webcam-list -avd <name of your AVD> en \android-sdks\tools donne le résultat :

List of web cameras connected to the computer:
Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`

Lorsque je lance la webcam à partir du gestionnaire AVD d'Eclipse ou à l'aide de la fonction emulator -camera-front webcam0 -avd <name of your AVD> J'obtiens la fenêtre suivante :

enter image description here

Edit 2 : Cela semble être un bug dans l'émulateur. La réponse suggérée vous dit quoi faire pour configurer la caméra, mais ne résout pas le problème pour moi. J'ai finalement résolu le problème en utilisant un ordinateur portable avec une webcam intégrée. Peut-être qu'une autre webcam USB aurait également pu fonctionner.

146voto

nurne Points 978

UPDATE

Dans Android Studio AVD :

  1. Ouvrez AVD Manager :

AVD menu

  1. Ajouter/Modifier AVD :

Specific AVD strip

  1. Cliquez sur Paramètres avancés en bas de l'écran :

AVD Advanced Settings

  1. Définissez la caméra de votre choix comme étant les caméras avant et arrière :

AVD Camera Settings

43voto

Lalith B Points 1744

Suivez les étapes ci-dessous dans Eclipse.

  1. Goto -> Gestionnaire AVD
  2. Créez/éditez l'AVD.
  3. Matériel > Nouveau :
  4. Configure la caméra face à l'arrière
  5. Cliquez sur la valeur de la propriété et choisissez = "webcam0".
  6. Une fois que vous avez fait tout ce qui précède, la webcam devrait être connectée. Si ce n'est pas le cas, vous devez vérifier les pilotes de votre webcam.

Pour plus d'informations, cliquez ici : Comment utiliser une caméra web dans l'émulateur Android pour capturer une image en direct ?

enter image description here

6voto

Halim Qarroum Points 5758

Je vous suggère de consulter cet article de blog très bien noté qui parvient à donner une solution au problème que vous rencontrez :

http://www.inter-fuser.com/2009/09/live-camera-preview-in-Android-emulator.html

Son code est basé sur les API Android actuelles et devrait fonctionner dans votre cas, étant donné que vous utilisez une API Android récente.

3voto

Tanuj Nayak Points 329

Je vous suggère de vérifier les pilotes et de les mettre à jour si nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X