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

Je connecte une webcam à mon émulateur en réglant la caméra frontale sur “webcam0” dans AVD Manager. Lorsque je lance l’application caméra de l’émulateur, j’obtiens l’erreur

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

Voici la partie pertinente du code source Android:

 sp CameraService::connect( const sp& cameraClient, int cameraId) { int callingPid = getCallingPid(); [...] if (cameraId = mNumberOfCameras) { LOGE("CameraService::connect X (pid %d) rejected (invalid cameraId %d).", callingPid, cameraId); return NULL; } [...] } 

Un ID de 0 a été atsortingbué à la webcam, car il n’y a qu’une seule caméra. Cependant, mNumberOfCameras est probablement toujours 0. Cela signifie que la caméra est enregistrée par l’émulateur, mais elle 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 dans \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 l’ emulator -camera-front webcam0 -avd , j’ai la fenêtre suivante:

entrer la description de l'image ici

Edit 2: Cela semble être un bogue 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. Je l’ai finalement résolu en utilisant un ordinateur portable avec une webcam intégrée. Une autre webcam USB aurait peut-être aussi bien fonctionné.

METTRE À JOUR

Dans Android Studio AVD:

  1. Ouvrez le gestionnaire AVD:

Menu AVD

  1. Ajouter / Modifier AVD:

Bande AVD spécifique

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

Paramètres AVD avancés

  1. Définissez votre appareil photo de votre choix parmi les caméras avant / arrière:

Paramètres de la caméra AVD

Suivez les étapes ci-dessous dans Eclipse.

  1. Goto -> Gestionnaire AVD
  2. Créez / modifiez le fichier AVD.
  3. Matériel> Nouveau:
  4. Configure la caméra vers l’arrière
  5. Cliquez sur la valeur de la propriété et choisissez = “webcam0”.
  6. Une fois terminé, tout ce qui précède la webcam doit être connecté. Si ce n’est pas le cas, vous devez vérifier vos pilotes WebCam.

Vérifiez ici pour plus d’informations: Comment utiliser une caméra Web dans un émulateur Android pour capturer une image en direct?

entrer la description de l'image ici

Je vous suggère de regarder ce billet de blog très bien noté qui permet de résoudre le problème auquel vous êtes confronté:

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.

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