Android Emulator: Impossible de démarrer la webcam pour capturer une image dans un émulateur

J’ai créé un émulateur armeabi API 21 dans le gestionnaire AVD d’Android Studio, configurez-le pour utiliser la webcam comme caméra frontale et lancez-le. Le problème est qu’il n’est pas capable de l’ouvrir car j’obtiens cette erreur:

emulator: ERROR: camera_device_start_capturing: VIDIOC_STREAMON on camera '/dev/video0' has failed: Timer expired emulator: ERROR: _camera_client_query_start: Cannot start camera '/dev/video0' for NV21[640x480]: Inappropriate ioctl for device 

Comment puis-je resoudre ceci?

La webcam fonctionne normalement avec un autre logiciel. Le système d’exploitation est Ubuntu 14.04.

Dans Android Studio, accédez à AVD Manager, cliquez sur le bouton Modifier (crayon) dans Actions. Après cela, dans la fenêtre suivante, cliquez sur Paramètres avancés, puis faites défiler vers le bas et dans Options de la caméra, sélectionnez webcam pour l’avant et l’arrière.

Pour activer la caméra dans votre émulateur Android, ajoutez simplement le code en surbrillance suivant dans le fichier config.ini de votre AVD. Vous pouvez trouver le fichier config.ini sous votre dossier /.android .

Fichier: ~/.android/config.ini

 hw.lcd.density=160
skin.name=HVGA
skin.path=platforms\android-9\skins\HVGA
hw.cpu.arch=arm
abi.type=armeabi
vm.heapSize=24
image.sysdir.1=platforms\android-9\images\
hw.camera=yes
sdcard.size=64M

Si vous ne trouvez pas le fichier config.ini ou si vous souhaitez activer la prise en charge de l’appareil photo via Android SDK et AVD Manager, procédez comme suit:

Ouvrez Android SDK et AVD Manager:

  1. Ajouter une carte SD dans AVD
    Dans le paramètre Carte SD, définissez la valeur pour Taille. Pour activer la caméra, la carte SD doit être activée dans Emulator.
  2. Ajouter une prise en charge de la caméra dans le matériel sous AVD
    Maintenant, dans la section Matériel, cliquez sur Nouveau bouton pour append le matériel de la caméra. Il s’ouvrira après la boîte de dialog. Sélectionnez Prise en charge de la caméra dans la liste déroulante Propriété et cliquez sur OK.
  3. Activer le support de la caméra dans le matériel
    Le nouveau matériel: Le support de la caméra est visible dans la section Matériel. Définissez sa valeur sur yes et enregistrez les modifications en appuyant sur Edit AVD.
  4. Enregistrez les modifications et lancez l’émulateur.

Vous pouvez essayer de modifier manuellement le fichier de configuration de votre AVD sous

~ / .android / avd / yourAvdName / config.ini

en ajoutant cette ligne:

 hw.camera=yes 

METTRE À JOUR

Vous pouvez essayer de spécifier la résolution réelle de votre webcam:

 hw.camera.maxHorizontalPixels=XXX hw.camera.maxVerticalPixels=XXX 

Gardez à l’esprit que la valeur par défaut pour maxHorizontalPixels est 640 et pour maxVerticalPixels est 480 , ainsi, modifier ces valeurs peut vous aider à résoudre vos problèmes.

J’ai eu un problème similaire avec un message d’erreur légèrement différent sous OS X. Je me suis rendu compte que tout allait bien mais que l’émulateur se bloquait lorsque l’appareil photo mettait trop de temps à s’initialiser.

Dans mon cas, j’ai fini par fermer d’autres applications et cela a fonctionné. Vous voudrez peut-être tester sur un ordinateur plus performant.