Как включить камеру в эмуляторе nox

Обновлено: 05.07.2024

Эмуляторы сегодня пользуются популярностью на рынке, ведь каждый пользователь хочет опробовать новинки игровой индустрии, заточенной под мобильные платформы. А тенденция такова, что системные требования в таких проектах только растут. Сегодня мы поговорим о том, как настроить управление в Nox App Player, также в процессе повествования рассмотрим нюансы пользовательской наладки эмулятора.

Дорогу шутерам

На мобильные платформы выходит много новых «стрелялок», и смартфоны среднего ценового сегмента дымятся от напряженной работы. Но с появлением данного эмулятора такая проблема исчезла. Проблема состоит только в настройке Nox под шутеры.

Для удобства восприятия разобьем дальнейшее повествование на несколько логических блоков.

Камера

Для перехода в режим правления камеры достаточно воспользоваться следующей пошаговой инструкции:

Стрельба

Каждый геймер привык убивать врагов пачками с помощью ЛКМ, и никто не собирается отказываться от своих привычек в угоду эмулирующей среды. Пусть игра подстраивается.

Для этого достаточно:

  1. Перейти в уже привычное меню игровых настроек управления.
  2. Перетащить на «рабочую область» иконку в виде пистолета.
  3. Используем мышь для задания новой кнопки.

Теперь в режиме управления камерой стрельба доступна на привычную левую клавишу.

Движение

Кнопки WASD накрепко ассоциируется у пользователей с движением своего персонажа в играх. Дабы не портить «картину маслом», посмотрим, как можно решить эту ситуацию:

Настройка передвижения Nox App Player

  1. Запускаем Нокс и кликом открываем любимый шутер.
  2. В правом углу интерфейса выбираем иконку в виде клавиатуры.
  3. Теперь находим значок «крестовину» и перемещаем его на «экранный джойстик».
  4. По умолчанию там уже выставлена нужная комбинация клавиш, но их можно легко заменить, кликнув по иконке ЛКМ.

Двойное нажатие

В некоторых играх просто не выиграть без двойного тапа, но мы же с вами просвещенные, поэтому не будем просто два раза нажимать, скажем, Пробел для прыжка.

Более простой вариант представлен ниже:

Игровой контроллер

Во многие игры гораздо удобнее играть с подключенным к Nox App Player геймпадом. Для претворения задуманного в жизнь ниже представлена пошаговая инструкция:

Перех в настройки игрового манипулятора Nox App Player

  1. Запускаем Nox App Player и вызываем расширенное меню эмулятора, кликнув на иконку с точками, расположенную в правом блоке.
  2. Вызываем опцию «Конфигурация контроллера», предварительно подключив манипулятор к компьютеру.
  3. Выберите все необходимые параметры и сохраните изменения.

Если ваше устройство не распознается Ноксом, то рекомендуем несколько раз обновить представленный список подключений. Также убедитесь в правильности установленных ранее драйверов.



Многие разработчики, особенно начинающие, пользуются эмулятором Android для создания своих приложений. Это позволяет делать очень многое без подключения телефона. Почти всё. Вот именно это «почти» и относится, например, к вебкамере. Для большинства приложений может быть и достаточно будет такого вида, ведь можно передать «нужное» изображение на обработчик, а окончательно протестировать уже на реальном устройстве. Для приложений которые работают с дополненой реальностью так работать будет совсем не удобно. Хотелось бы иметь видеопоток. В случае если телефона с андроидом под рукой нет — это проблема.
В прошлой заметке я писал о том, как работают методы распознавания маркера дополненой реальности. Данная статья будет посвящена тому, как воспользоваться вебкамерой в эмуляторе Android.

Суть проблемы


Если мы используем эмулятор и камеру в нашем приложении, то на выходе получаем приблизительно такую картинку:

Хотелось бы, чтобы вместо этого были изображения с вебкамеры компьютера.

Подходы к решению

1) Можно доработать эмулятор Андроид, который в opensource.
2) Передать поток с вебкамеры по сети, и использовать его в приложении.
3) Использовать Android x86.

Исходники эмулятора для honeycomb недоступны с марта 2011, есть доступные deprecated версии, с ними работать весело, но непродуктивно. А жаль, это был бы наиболее приемлимый вариант. Тем более опыт допиливания приложений, которые работают с видеопотоком и v4l2 под Linux есть.
Androidx86 — похоже выход, это может помочь многим, но… У меня поднять веб-камеру не получилось.
Первый и третий подход нам недоступен, тогда будем бороться за второй подход.
Идея давно уже предложена и даже реализована для старых версий эмулятора и API. Для новых версий API предложено решение, но исключительно для JMF. Отличное решение, но мою камеру JMF не распознал. Заставить камеру работать с JMF не получилось ни в Linux, ни в Windows(возможно я что-то делал не так, по идее это решение должно запускаться в Windows). Все дальнейшие действия я проводил уже исключительно в Linux. Модифицируем решение этой проблемы на базе уже готового кода.
В исходном коде реализована классическая система клиент-сервер. Сервер на компьютере вещает в сеть картинки с камеры, а клиент в эмуляторе (в приложении) принимает эти картинки.

Что установлено

Сервер

Для создания сервера я решил двигаться по пути наименьшего сопротивления и воспользоваться библиотекой v4l4j — которая прекрасно поддерживает мою камеру.
Необходимо доработать исходный код таким образом, чтобы вместо JMF он использовал v4l4j. Вот что получилось.

измененный WebBroadcaster(привожу код полностью, чтобы была понятна логика работы. Автор Tom Gibara, я лишь адаптировал под v4l4j):

Какая логика работы:
При запуске включаем камеру и подготавливаемся к получению изображений:

Потом, когда клиент соединяется — высылаем ему изображение в поток:

Клиент


А внутри этого класса Preview, перерисовываем каждый раз поверхность на который выводится предпросмотр.

Если этот код запустить в эмуляторе, то получим квадратик как на скриншоте выше.
Теперь, модифицируем класс таким образом чтобы он показывал картинки с нашего сервера.
1) Возьмем исходник класса SocketCamera отсюда. Добавим в наш проект.
2) Изменим исходный код класса Preview таким образом:

Результат

Теперь запустим сервер:
java -Djava.library.path=/opt/Android/v4l4j-0.8.10 -cp "/opt/Android/v4l4j-0.8.10/v4l4j.jar:./" com/webcambroadcaster/WebcamBroadcaster

где -Djava.library.path=/opt/Android/v4l4j-0.8.10 путь к вашей библиотеке v4l4j

Запустим приложение CameraDemo на эмуляторе. В результате получим видеопоток в с вебкамеры в эмуляторе. Поток немного дергает, идет с запозданием, но это лучше чем ничего.


Послесловие

Задумался о существующем пороге входа в технологию. Вроде бы и небольшой порог, но покупка устройства очень часто недоступна начинающему разработчику. Эмулятор снимает этот порог лишь частично.
А какой же тогда порог входа в разработку приложений под iPhone?

Столкнувшись с тем, что участник сообщества открытого кода закрывет его после некоторого времени, возникают вопросы:
А в прибыли ли только дело?
Может быть работа сообщества не оправдала ожиданий Google?
Неужели теперь есть что скрывать от сообщества?
А что теряет гигант, закрываясь от изучения и дополнения кода сторонними разработчиками?

UPD2: Проверил. Камера в эмуляторе работает и доступна для SDK tools rev. 14 и выше и только для Android 4.0 и выше. Для старых платформ выше описанный способ все еще актуален.

Сабж: Установлен вотсап на эмуляторе Nox, мне необходимо считать с эмулятора QR код вотсапа и просканировать в Web версии.
Я так понимаю, мне нужно настроить вебкамеру на ноутбуке, таким образом, чтобы она считывала QR код в окне браузера, где открыта веб версия Вотсапа.
Другими словами, что я хочу реализовать 1) Захожу в Whatsapp через эмулятор (Nox), 2) Нажимаю на Web версия 3) И вебкамера ноутбука переключается на окно браузера, а именно на ту область где расположен QR код, считывает его и впускает меня в веб версию.
Попробовал программу Youcam для этой цели - безуспешно, при нажатии на Web версию через эмулятор вместо области, где расположен QR код, вебка выдает какую то цветовую гамму. (с вебкой проблем нету, когда выключен тот же самый Youcam)
В общем ребята, подскажите пожалуйста как я смогу установить вебкамеру ноутбука на определенную область экрана и считать QR код c сайта Web Whatsapp.
Подскажите что можно сделать, какую прогу скачать (желательно не Youcam) любую догадку, предположение.
Буду благодарен за любую информацию.

Вопрос решён :)
Если у кого возникнет аналогичная проблема
Необходимо зайти в диспетчер устройств, нажать на "устройство обработки изображений" и отключить вашу вебкамеру.
После чего установить прогу эмулятор веб камеры, я использовал vcam (не реклама) и выбрать область QR кода в Веб версии. Через эмулятор зайти в Web версию вотсап и все считывает.

5f2abd9add62e136982874.jpg

Что сделал:
Установил Android Emulator Nox, в настройках включил root.

5f2abd67979f6505143690.jpg

закинул droidproxy, но через пару секунд после запуска вижу

5f2abe8b96b48805164516.jpg

установил CatLog для просмотра логов/ошибок при запуске proxydroid-a

В логах CatLog-а несильно понял что ему не нравится при запуске в эмуляторе. вообщем если есть люди имеющие положительный результат в запуске данного(или подобных) утилит то буду рад услышать советы.

Подробности

Есть такое подозрение, что вы сюда пришли не послушать хвалебные оды «великому и могучему» эмулятору Нокс. Напротив, требуется практическая информация, которая бы позволила эффективно использовать весь функционал программы. Правда? Тогда приступаем к непосредственному повествованию. Для удобства восприятия разобьем дальнейшее повествование на несколько логических блоков.

Подключаем периферию

Для настройки клавиатуры в Ноксе потребуется «перелопатить» несколько вкладок пользовательских настроек. Пошаговая инструкция уже представлена ниже:

Некоторым пользователям удобнее использовать виртуальный аналог Android OS. Для его активации достаточно деактивировать вышеназванный параметр.

Для проверки работоспособности клавиатуры рекомендуем открыть заметки или любой текстовый редактор.

Возможные проблемы

Если настройка аппаратной клавиатуры в Nox провалилась или она не работает, то стоит предпринять следующие действий:

  • перезапустите компьютер;
  • убейте все процессы, связанные с эмулятором, активируйте его заново;
  • обновите драйвера для устройств ввода и вывода информации;
  • попробуйте деактивировать виртуализацию; и установите свежую версию.

Точно определить корень проблемы сложно, но комплексный подход принесет плоды, будьте уверены.

Читайте также: