Я підключаю веб-камеру до мого емулятора, встановивши для передньої камери значення "webcam0" в диспетчері AVD. Коли я запускаю програму камери емулятора, я отримую помилку
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;
}
[...]
}
Веб-камері було правильно призначено ідентифікатор 0, оскільки є лише 1 камера. Однак, 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`
Коли я запускаю веб-камеру з диспетчера AVD Eclipse або використовую emulator -camera-front webcam0 -avd <name of your AVD>, я отримую таке вікно:

Редагування 2: Це, здається, помилка в емуляторі. Запропонована відповідь говорить вам, що робити для налаштування камери, але не вирішує проблему замість мене. Я врешті вирішив це, використовуючи ноутбук із вбудованою веб-камерою. Можливо, ще одна веб-камера USB також могла б працювати.




