मैं AVD मैनेजर में "वेब कैमरा 0" के लिए फ्रंट कैमरा सेट करके एक वेबकैम को अपने एमुलेटर से कनेक्ट कर रहा हूं। जब मैं एमुलेटर का कैमरा एप्लिकेशन शुरू करता हूं, तो मुझे त्रुटि मिलती है
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 प्रबंधक या उपयोग से वेबकैम लॉन्च करता हूं emulator -camera-front webcam0 -avd <name of your AVD>, तो मुझे निम्नलिखित विंडो मिलती है:

संपादन 2: यह एमुलेटर में एक बग प्रतीत होता है। सुझाया गया उत्तर आपको बताता है कि कैमरा स्थापित करने के लिए क्या करना है, लेकिन मेरे लिए समस्या का समाधान नहीं है। मैंने अंततः एक अंतर्निहित वेबकैम के साथ लैपटॉप का उपयोग करके इसे हल किया। शायद एक और USB वेबकैम ने भी काम किया होगा।




