Симуляция камеры для андроид

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 колонка, но неизвестно как будет следующий раз, больше шансов что будет только смартфон.

Читайте также:  Duck hunt для андроид

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 адрес переносим слева направо

Источник

Виртуальная камера в QEMU / Android

Виртуалка qemu, клиент — android-x86. Usb-камеры нет в наличии.

Хочу заставить ватcaп принимать входящие видеозвонки, но он отказывается если локальная видеокамера не доступна.

Как можно эмулировать камеру в android-е, или пробросить ему /dev/video0 с хоста?

Как его установить в android-е? Или пробросить с хоста как-то можно? Консоль с правами администратора там есть.

Usb-камеры нет от слова совсем.

это обычный ядерный модуль, собери для своего адроид ядра.

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

Эмулятор, встроенный в Android Studio умеет эмулировать камеру (какя-то анимация воспроизводится). Эмулятор можно запустить отдельно от студии, он на основе qemu.

Погуглив понял, что это реально. Но если даже соберу модуль и загружу, то, как с /dev/video0 работать начать, хотя-бы картинку туда запихать имеющимися в android утилитами? Не придётся ли ещё и ffmpeg компилировать?

Ну-ну, а на какой у тебя шине источник картинки, которую ты пробрасывать собрался?

Ни на какой. Вопрос в том как создать виртуальную камеру. И лучше со смешной картинкой.

Не получается установить скаченный apk в эмулятор, висит окошко «Installing APK. » и всё
https://img15.lostpic.net/2020/02/03/534bed1cc9058056c3b5c23cc6098910.png

Сделай из командной строки, через adb. По крайней мере есть шанс увидеть выхлоп.

На Pixel 3a android 10 встал через маркет.

Для маркета нужен аккаунт Google, а он не создаётся.
Google не нравится номер телефона, пишет «Этот номер нельзя использовать для подтверждения ID». Пробывал несколько номеров, на которые точно ничего раньше не регистрировалось. Все номера от полосатой ОПГ, но это временно.

Читайте также:  Простые заметки для андроид

Хотел купить usb-камеру на днях, будете смеяться — не хватило 300р.

Не знаю как.
Но вот выхлопы (кое-что видно):

Источник

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

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

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

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

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

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

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

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

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

Источник

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

Клиент

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 и выше. Для старых платформ выше описанный способ все еще актуален.

Источник

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