Android: Як використовувати веб-камеру в емуляторі?


84

Я підключаю веб-камеру до мого емулятора, встановивши для передньої камери значення "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 також могла б працювати.

Відповіді:


113

ОНОВЛЕННЯ

В Android Studio AVD:

  1. Відкрийте AVD Manager:

Меню AVD

  1. Додати / редагувати AVD:

Конкретна AVD-смужка

  1. Натисніть Додаткові налаштування внизу екрана:

Додаткові налаштування AVD

  1. Встановіть вибрану камеру як фронтальну / задню:

Налаштування камери AVD


3
Не слід встановлювати передню та задню камери на одне і те ж джерело.
Кріс Рівер

1
@ChrisRiver Чому ні? Це не має значення.
DaveTheMinion

2
Класно! Але як змінити веб-камеру, якщо у нас їх більше?
walkmn

2
Він миттєво збиває симулятор при запуску камери. Я на Mac.
Мілінд Мевада

2
@walkmn Ви можете використовувати альтернативний кулачок через CLI:cd "${ANDROID_HOME}/tools"; ./emulator -avd $VIRTUAL_DEVICE_AVD_ID -camera-back webcam1
steamer25

42

Виконайте наведені нижче дії в Eclipse.

  1. Перейти -> AVD Manager
  2. Створення / редагування AVD.
  3. Обладнання> Нове:
  4. Налаштовує камеру, спрямовану назад
  5. Клацніть на значення властивості та виберіть = "webcam0".
  6. Після закінчення всього вищезазначеного веб-камеру слід підключити. Якщо це не так, вам потрібно перевірити драйвери веб-камери.

Перегляньте тут для отримання додаткової інформації: Як використовувати веб-камеру в емуляторі Android для зйомки живого зображення?

введіть тут опис зображення


2
Я думаю, що це старіший інтерфейс для менеджера AVD. Раніше у мене було вікно, що виглядало так, але тепер я можу вибрати передню та задню камери зі спеціальних випадаючих меню.
1 ''

Я використовую mac, щоб затемнення виглядало таким чином у mac osx. Тож вікна та меню можуть відрізнятися в ОС Microsoft Windows та ОС Linux.
Lalith B

Зверніть увагу, що вам також потрібно вибрати правильний API. Ви можете вибрати емуляцію для API 10, але це не буде працювати. Я думаю, що API 16 був першим, хто справді підтримав його.
Nux

Ніяка емуляція не базується на ADT, а не на Android API. ADT підтримує емуляцію з 19, я думаю.
Lalith B

В Android Studio для кроку 3 натисніть кнопку «Показати розширені налаштування», щоб відобразити параметри камери.
eldes

7

Я пропоную вам поглянути на цей високооцінений допис у блозі, в якому вдається вирішити проблему, з якою ви стикаєтесь:

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

Його код базується на поточних API для Android і повинен працювати у вашому випадку, враховуючи те, що ви використовуєте недавній API для Android.


Я бачив це, але припускав, що це застаріло. Я використаю його, якщо іншого шляху не буде. Однак менеджер 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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.