Android emulator and camera

Android смартфон как вебкамера/микрофон/динамики для ПК

Вебкамера

Очень захотелось мне прикрутить на эмулятор android для ПК под Windows камеру(надо было считать qr код, но это тема отдельной статьи), поиски в интернете выдали только одно достойное бесплатное ПО.

DroidCam Wireless Webcam (google play бесплатная и платная версии) — приложение для смартфона и клиент для Windows (со встроенным в инсталлятор драйвером для виртуального устройства) и Linux, которое позволяет использовать android смартфон в качестве видео камеры ПК, соединяясь через USB или WI-FI. Сайт проекта, там можно скачать ПО, здесь зеркало (клиент для Windows). Дополнительную информацию можно найти на 4pda.

Для начала использования надо установить и открыть программы на смартфоне и ПК.

Для USB подключения необходимо:

выбрать соответствующий тип подключения в приложении Windows (синяя рамка, средняя кнопка)

подключить смартфон к ПК по USB

в приложении Windows нажать Start

При Wi-Fi подключении(смартфон и ПК должны быть подключены к одной сети)видео можно просматривать из клиентской программы либо из браузера, 2 подключения недопустимы.

Лого проекта DroidCam

Для начала подключения по Wi-Fi надо выбрать способ подключения (синяя рамка, левая кнопка). Затем:

Для подключения через клиентскую программу необходимо в ней указать IP смартфона в сети (красные стрелки) и порт;

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

Слева приложение для Windows, справа для andriod смартфона

В обоих случаях если что-то не получается можно попробовать покрутить настройки портов.

Микрофон

При переходе на удаленную работу возникала необходимость голосовой связи через ПО. Микрофон встроенный в ноутбук выдавал ужасное качество, поэтому было решено попробовать смартфон в качестве микрофона. Искать соответствующее ПО пришлось не долго, а звук оказался достаточно качественным(несмотря на то что в работе участововал ультрабюджетник Lenovo A5).

Wo Mic (Google Play, App Store) это бесплатное приложение для сматрфона и клиент для Windows и Linux, драйвер для виртуального устройства. Все ПО можно скачать на сайте проекта, есть еще зеркало здесь (apk, windows клиент, драйвер). Дополнительную информацию можно найти на 4pda.

Приложение позволяет коннектиться по USB (необходима отладка по USB), Bluetooth, WI-FI.

Для начала нужно все установить, порядок установки драйвера и клиента для Windows не имеет значения.

Лого проекта Wo Mic

Чтобы начать использовать смартфон как микрофон, необходимо:

запустить программу на смартфоне (и нажать кнопку ▶)

запустить программу на ПК (в меню выбрать «Подключение» — подключиться — выбрать нужный тип подключения и следовать инструкции).

Динамики

Некоторое время у меня на ноутбуке не работали динамики (не правильно собрал) … но этот раздел статьи я добавил лишь для полноты картины :)Мне повезло, у меня была Bluetooth колонка, но неизвестно как будет следующий раз, больше шансов что будет только смартфон.

SoundWire (google play) — бесплатное приложение для android смартфона и программа для Windows (точнее ПК Windows здесь выступает сервером, а смартфон клиентом) для транслирования звука с ПК на смартфон. Сайт проекта где можно скачать необходимое ПО. Зеркало здесь (apk, windows клиент). Дополнительную информацию можно найти на 4pda.

Читайте также:  Все для андроида битва зомби

Лого проекта SoundWire

Для трансляции звука с ПК на android устройство необходимо чтобы они были в одной сети, могут быть разные варианты:

использовать смартфон как (этот способ создает локальную сеть):

USB модемBluetooth модем точку доступа Wi-Fi

подключиться к Wi-Fi сети в которой находится ПК

В первом случае смартфон будет выступать источником доступа в интернет, но некоторые провайдеры мобильной связи блокируют эту возможность. Самый простой способ это отключить мобильный интернет на смартфоне, при этом соединение с ПК останется, так как это в первую очередь локальная сеть. Либо можно поменять ttl, но это путь джедаев.

В любом случае в Windows приложении в строке Server Address будет IP адрес, который нужно будет указать в android приложении, после чего нажать на кнопку соединения (выделено синим).

Слева программа для ПК под управлением Windows, справа android приложение, IP адрес переносим слева направо

Источник

Как воспользоваться вебкамерой в эмуляторе 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):

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

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

Из доработок на будущее— код использует устаревшее getVideoFrame(), который надо-бы заменить на вызов callback функции при появлении нового фрэйма на камере, но пришлось бы вносить изменения также и в логику работы всей связки, потому оставил все как есть, Возможно перепишу лучше позже, когда будет время. Ведь это вспомогательная функция на этапе разработки… В идеале необходимо сделать чтобы программа читала поток в формате MJPEG, т. е. парсила multipart/x-mixed ответ от HTTP сервера и рисовала картинки по мере поступления.

Читайте также:  Навигационная система wp9900 android

Клиент

Cсылка на классический пример использования обычной камеры. Мы его немного сократим, упростим(в целях обучения и тестирования) и получим вот такой пример для обычной камеры.

Важные строки: Класс который будет отвечать за отображение.

А внутри этого класса 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?
Неужели теперь есть что скрывать от сообщества?
А что теряет гигант, закрываясь от изучения и дополнения кода сторонними разработчиками?

UPD: Это все возможно уже и не актуально. skl1f подсказывает, что камера поддерживается в SDK.
developer.android.com/sdk/tools-notes.html — вроде документация говорит да, а официальный мануал: developer.android.com/guide/developing/devices/emulator.html — нет. Надо пробовать.

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

Источник

Используйте файл изображения в качестве камеры

Вместо использования реальной камеры, я хотел бы смоделировать вход камеры в виде статического файла изображения. Я хочу, чтобы он работал с любым приложением, как если бы это была камера. Точнее говоря, Android находится внутри эмулятора на компьютере без веб-камеры.

(Как и в этом вопросе, но мне достаточно статичного изображения)

Чтобы быть более точным, я хочу отсканировать QR-код из WhatsApp, чтобы использовать веб-сеть WhatsApp, поэтому использование приложений, которые открываются, когда приложение хочет открыть камеру, не работает. Мне нужно что-то вроде поддельного драйвера камеры.

Существуют сторонние приложения «поддельные камеры», которые позволяют вам выбирать изображение, например:

  • Image2Camera ( бесплатно )
  • Поддельная камера от New Horizon Apps ( бесплатно )
  • Fake Camera — пожертвовать версию от Вацлава Балака ( платно )

Обратите внимание, что для того, чтобы эти приложения были полезными , вам необходимо сначала поместить изображение в хранилище устройства (эмулятора) .

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

Читайте также:  Рейтинг видеонаблюдение для андроид

Отказ от ответственности : я не связан ни с одним из этих приложений.

Источник

How To Enable Camera in Android Emulator

by Viral Patel · May 8, 2012

By default when you create an Android Virtual Devices (AVD) in Android, the Camera is disabled. So if your application uses Camera API, it might not work properly in Android Emulator. Also SDCard must be defined in emulator in order to use Camera.

To enable Camera in your Android Emulator, just add following highlighted code in your AVD’s config.ini file. You can find the config.ini file under your user directory/.android folder.

In case you don’t find the config.ini file or want to enable Camera support through Android SDK and AVD Manager, follow below simple steps.
Open Android SDK and AVD Manager:

Step 1: Add SD Card in AVD

In the SD Card setting, set the value for Size. To enable camera, the SD Card must be enabled in Emulator.

Step 2: Add Camera Support in Hardware under AVD

Now under Hardware section, click New button to add Camera hardware. It will open following Dialog box. Select Camera support from the Property dropdown and click Ok.

Step 3: Enable Camera Support in Hardware

The new hardware: Camera support is visible under Hardware section. Set its value to yes and save changes by pressing Edit AVD.

And that’s all. Just save the changes and launch the emulator. You’ll be able to start Camera application and take snaps (Default android pic) through it.

Источник

Using Camera in the Android emulator

I wish to simulate camera in the android emulator using the webcam. Basically I need to only take photos with the camera in the emulator (live preview is not needed i.e if it makes it any easier)

I followed the tutorial here which is the only one I could find that was close to my requirements

But many of the libraries used in that tutorial(like android.hardware.CameraDevice) are not available in present sdk and are replaced by new libraries(like android.hardware.camera).

Any help on how to do this in the present sdk(2.1 or 2.2) would be much appreciated.

8 Answers 8

In your AVD advanced settings, you should be able to set front and back cameras to Webcam() or Emulated .

Update: ICS emulator supports camera.

Some elaboration, in the hope of clarifying what has already been said:

As stated above, Webcams are supported natively in the current SDK, but only on recent android versions (4.0 and higher)

Webcam detection is automatic where present. In 4.0.3, the camera defaults to the front-facing camera so a lot of applications (especially pre-2.3 applications, which can only fetch the default camera, i.e. the back-facing one) will still show you the old checkerbox-with-moving-square stand-in instead.

I think some more info is available in the following post: Camera on Android Eclipse emulator:

Or at least, that’s the most information I’ve been able to find—aside from the brief, uninformative statements in the release notes for the SDK tools.

Источник

Оцените статью