AVD Manager에서 전면 카메라를 "webcam0"으로 설정하여 웹캠을 에뮬레이터에 연결하고 있습니다. 에뮬레이터의 카메라 애플리케이션을 시작할 때 오류가 발생합니다.
CameraService::connect X (pid 702) rejected (invalid cameraId 0).
다음은 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;
}
[...]
}
카메라가 1 대뿐이므로 웹캠에 ID 0이 올바르게 할당되었습니다. 그러나 mNumberOfCameras아마도 여전히 0 일 것입니다. 이것은 카메라가 에뮬레이터에 의해 등록되고 있지만 연결된 카메라 수를 업데이트 할 필요가 없음을 의미합니다.
에뮬레이터에서 제대로 인식되도록 웹캠을 연결하려면 어떻게해야합니까?
편집 :의 명령 은 결과 emulator -webcam-list -avd <name of your AVD>를 \android-sdks\tools제공합니다.
List of web cameras connected to the computer:
Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`
Eclipse의 AVD 관리자에서 또는을 사용하여 웹캠을 시작 emulator -camera-front webcam0 -avd <name of your AVD>하면 다음 창이 나타납니다.

편집 2 : 이것은 에뮬레이터의 버그 인 것 같습니다. 제안 된 대답은 카메라를 설정하기 위해해야 할 일을 알려주지 만 문제를 해결하지 못합니다. 웹캠이 내장 된 노트북을 사용하여 궁극적으로 해결했습니다. 다른 USB 웹캠도 작동했을 수 있습니다.




