एंड्रॉइड: एमुलेटर में वेबकैम का उपयोग कैसे करें?


84

मैं 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 वेबकैम ने भी काम किया होगा।

जवाबों:


113

अपडेट करें

एंड्रॉयड स्टूडियो में AVD:

  1. AVD प्रबंधक खोलें:

AVD मेनू

  1. AVD जोड़ें / संपादित करें:

विशिष्ट AVD पट्टी

  1. स्क्रीन के निचले भाग में उन्नत सेटिंग्स पर क्लिक करें:

AVD उन्नत सेटिंग्स

  1. अपनी पसंद के कैमरे को फ्रंट / बैक कैमरों के रूप में सेट करें:

AVD कैमरा सेटिंग्स


3
आपको फ्रंट और बैक कैमरे को एक ही स्रोत पर सेट नहीं करना चाहिए।
— क्रिस रिवर

1
@ChrisRiver क्यों नहीं? यह बात नहीं होनी चाहिए।
— डेवियनियन

2
ठंडा! लेकिन अगर हम एक से अधिक हैं तो वेबकैम कैसे बदलें?
— 9

2
कैमरा शुरू होने पर यह सिम्युलेटर को तुरंत क्रैश कर देता है। मैं एक मैक पर हूँ।
— मिलिंद मेवाड़ा

2
@walkmn आप CLI के माध्यम से वैकल्पिक कैम का उपयोग कर सकते हैं:cd "${ANDROID_HOME}/tools"; ./emulator -avd $VIRTUAL_DEVICE_AVD_ID -camera-back webcam1
— स्टीमर

42

ग्रहण में नीचे दिए गए चरणों का पालन करें।

  1. गोटो -> एवीडी मैनेजर
  2. AVD बनाएं / संपादित करें।
  3. हार्डवेयर> नया:
  4. वापस आने वाले कैमरे को कॉन्फ़िगर करता है
  5. संपत्ति मूल्य पर क्लिक करें और = "वेब कैमरा 0" चुनें।
  6. एक बार जब उपरोक्त सभी वेबकैम को कनेक्ट किया जाना चाहिए। यदि यह नहीं है, तो आपको अपने WebCam ड्राइवरों की जांच करने की आवश्यकता है।

अधिक जानकारी के लिए यहां देखें: लाइव इमेज कैप्चर करने के लिए एंड्रॉइड एमुलेटर में वेब कैमरा का उपयोग कैसे करें?

यहाँ छवि विवरण दर्ज करें


2
मुझे लगता है कि यह AVD मैनेजर के लिए पुराना UI है। मेरे पास एक खिड़की थी जो इस तरह दिखती थी, लेकिन अब मैं समर्पित ड्रॉप-डाउन मेनू से फ्रंट और रियर कैमरों का चयन कर सकता हूं।
— 1 ''

मैं एक मैक का उपयोग करता हूं इसलिए ग्रहण इस तरह दिखता है मैक ओएसएक्स में। इसलिए विंडोज़ और मेन्यू Microsoft विंडोज़ और लिनक्स ओएस में भिन्न हो सकते हैं।
— ललित बी

ध्यान दें कि आपको सही API चुनने की भी आवश्यकता है। आप एपीआई 10 के लिए एमुलेशन चुन सकते हैं लेकिन यह काम नहीं करेगा। मुझे लगता है कि एपीआई 16 वास्तव में इसका समर्थन करने वाला पहला था।
— नक्स

कोई भी अनुकरण ADT पर आधारित नहीं है और Android API पर नहीं है। मुझे लगता है कि 19 के बाद से ADT एमुलेशन का समर्थन करता है।
— ललित बी

एंड्रॉइड स्टूडियो में, चरण 3 के लिए कैमरा विकल्प प्रदर्शित करने के लिए "उन्नत सेटिंग्स दिखाएं" बटन का चयन करें।
— eldes

7

मेरा सुझाव है कि आप इस उच्च श्रेणी की ब्लॉग पोस्ट को देखें जो आपके सामने आने वाली समस्या का समाधान देने का प्रबंधन करती है:

http://www.inter-fuser.com/2009/09/live-camera-preview-in-android-emulator.html

उनका कोड वर्तमान एंड्रॉइड एपीआई पर आधारित है और आपके द्वारा दिए गए मामले में यह काम करना चाहिए कि आप हाल ही में एंड्रॉइड एपीआई का उपयोग कर रहे हैं।


मैंने इसे देखा है, लेकिन मुझे लगा कि यह पुराना था। अगर कोई और रास्ता नहीं है तो मैं इसका इस्तेमाल करूंगा। हालांकि, AVD प्रबंधक आपको फ्रंट या बैक कैमरा के रूप में एक वेब कैमरा निर्दिष्ट करने की अनुमति देता है, इसलिए मुझे लगता है कि एमुलेटर में इनपुट के रूप में वेबकैम का उपयोग करने की एक देशी क्षमता है।
— 1 ''

emulator -webcam-list -avd <name of your AVD>कमांड आपको किस तरह से बताती है? यदि आपने AVD के गुणों को बदल दिया है, तो अपने वेबकैम को webcam0 पर सेट करने के लिए, इसका उपयोग करके प्रयास करेंemulator -camera-front webcam0 -avd <name of your AVD>
— Halim Qarroum

3

मैं ड्राइवरों की जाँच करने और आवश्यकता होने पर उन्हें अपडेट करने का सुझाव दूंगा।


2
मेरा ड्राइवर, 6 साल का होने के बावजूद, अप-टू-डेट है और मुझे ऑनलाइन नया संस्करण नहीं मिल रहा है। अगर मुझे दूसरा मिल जाए तो मैं कैमरे बदलने की कोशिश कर सकता हूं।
— 1 ''
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.