android - programas - usar celular como cámara web
Android: ¿Cómo usar la cámara web en el emulador? (4)
Estoy conectando una cámara web a mi emulador configurando la cámara frontal en "webcam0" en el Administrador de AVD. Cuando inicio la aplicación de la cámara del emulador, recibo el error.
CameraService::connect X (pid 702) rejected (invalid cameraId 0).
Aquí está la parte relevante del código fuente de 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;
}
[...]
}
A la cámara web se le ha asignado correctamente una ID de 0 porque solo hay 1 cámara. Sin embargo, es probable que mNumberOfCameras
aún sea 0. Esto significa que la cámara está siendo registrada por el emulador, pero no se ha molestado en actualizar el número de cámaras conectadas.
¿Cómo puedo conectar una cámara web para que el emulador la reconozca correctamente?
Editar: el comando emulator -webcam-list -avd <name of your AVD>
en /android-sdks/tools
da el resultado:
List of web cameras connected to the computer:
Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`
Cuando emulator -camera-front webcam0 -avd <name of your AVD>
la cámara web desde el administrador AVD de Eclipse o cuando uso el emulator -camera-front webcam0 -avd <name of your AVD>
, emulator -camera-front webcam0 -avd <name of your AVD>
la siguiente ventana:
Edición 2: Esto parece ser un error en el emulador. La respuesta sugerida le indica qué hacer para configurar la cámara, pero no me resuelve el problema. Finalmente lo resolví usando una computadora portátil con una cámara web incorporada. Quizás otra webcam USB podría haber funcionado también.
ACTUALIZAR
En Android Studio AVD:
- Abra el administrador de AVD:
- Añadir / Editar AVD:
- Haga clic en Configuración avanzada en la parte inferior de la pantalla:
- Configure su cámara de elección como la cámara delantera / trasera:
Le sugiero que mire esta publicación de blog altamente calificada que logra dar una solución al problema que está enfrentando:
http://www.inter-fuser.com/2009/09/live-camera-preview-in-android-emulator.html
Su código se basa en las API de Android actuales y debería funcionar en su caso dado que está utilizando una API de Android reciente.
Siga los pasos a continuación en Eclipse.
- Ir a -> Administrador de AVD
- Crear / Editar el AVD.
- Hardware> Nuevo:
- Configura la cámara mirando hacia atrás.
- Haga clic en el valor de la propiedad y elija = "webcam0".
- Una vez hecho todo lo anterior se debe conectar la webcam. Si no es así, debe comprobar los controladores de su cámara web.
Consulte aquí para obtener más información: ¿Cómo usar la cámara web en el emulador de Android para capturar una imagen en vivo?
Sugeriría revisar los controladores y actualizarlos si es necesario.