Используйте файл изображения в качестве камеры
Вместо использования реальной камеры, я хотел бы смоделировать вход камеры в виде статического файла изображения. Я хочу, чтобы он работал с любым приложением, как если бы это была камера. Точнее говоря, Android находится внутри эмулятора на компьютере без веб-камеры.
(Как и в этом вопросе, но мне достаточно статичного изображения)
Чтобы быть более точным, я хочу отсканировать QR-код из WhatsApp, чтобы использовать веб-сеть WhatsApp, поэтому использование приложений, которые открываются, когда приложение хочет открыть камеру, не работает. Мне нужно что-то вроде поддельного драйвера камеры.
Существуют сторонние приложения «поддельные камеры», которые позволяют вам выбирать изображение, например:
- Image2Camera ( бесплатно )
- Поддельная камера от New Horizon Apps ( бесплатно )
- Fake Camera — пожертвовать версию от Вацлава Балака ( платно )
Обратите внимание, что для того, чтобы эти приложения были полезными , вам необходимо сначала поместить изображение в хранилище устройства (эмулятора) .
Кроме того, поскольку эти приложения на самом деле не являются приложениями для камер, непосредственное открытие приложений не будет действительно полезным (кроме, возможно, чтения инструкции по использованию приложения). Вместо этого, когда вы хотите сделать снимок из приложения, вместо этого эти приложения можно будет выбрать как приложение «камера», а затем вы можете выбрать изображение на устройстве.
Отказ от ответственности : я не связан ни с одним из этих приложений.
Источник
Виртуальная камера для android
Краткое описание:
Снимайте VR-фотографии – сохраняйте памятные моменты в формате виртуальной реальности. Смотрите их со звуком и в панорамном режиме.
Описание:
Снимайте VR-фотографии – сохраняйте памятные моменты в формате виртуальной реальности. Смотрите их со звуком и в панорамном режиме. VR-фотографии снимаются в 3D, поэтому близкие объекты кажутся близкими, а удаленные далекими. Отпуск или семейный праздник – VR-фотографии помогут вам оживить воспоминания.
Обратите внимание, что для полного погружения в виртуальную реальность необходимо вставить смартфон в очки Google Cardboard (http://g.co/cardboard).
Возможности:
• Просматривайте красивые объемные панорамные снимки со звуком в формате VR.
• Снимайте сразу после установки – регистрация и вход с аккаунтом не требуется.
•Используйте Google Cardboard для просмотра фотографий в формате виртуальной реальности.
Открывая это приложение, вы соглашаетесь с Условиями использования Google (http://www.google.com/accounts/TOS), Политикой конфиденциальности Google (http://www.google.com/intl/ru/policies/privacy/) и указанными здесь дополнительными условиями. Данное приложение является Службой (как описано в Условиях использования Google), и на него распространяются соответствующие условия использования программного обеспечения.
Запрещается использовать Cardboard за рулем, во время прогулок на улице и в любых других потенциально опасных условиях.
Тема приложения, виртуальной реальности от Google — Cardboard
Перед использованием Камеры Cardboard, убедитесь в том, что разрешение вашей камеры в смартфоне — не ниже 8Мпикс., камеры могут быть как и с технической стороны 8Мпикс., так и с софтверной — 8Мпикс. но по железу это — 5Мпикс. например.
Чем отличается эта камера (Камера Cardboard) от стандартной (Google Камера)? — Камера Cardboard (Пост IDanil774 #45429056)
Требуется Android: 4.4 или более поздняя
Русский интерфейс: Да
Сообщение отредактировал art0502ver — 14.12.18, 10:32
Источник
Как воспользоваться вебкамерой в эмуляторе 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 и выше. Для старых платформ выше описанный способ все еще актуален.
Источник
Как использовать смартфон в качестве веб-камеры
Очень многих карантин отправил учиться и работать «на удаленку». Но дистанционное обучение и совещания по рабочим вопросам никто не отменял. И если по каким-то причинам отдельной веб-камеры для видеоконференций у вас нет или она выдает картинку нелицеприятного качества, на выручку приходит смартфон. В качестве «вебки» можно использовать любые мобильные телефоны под управлением Android или iOS. Как это сделать? Давайте разбираться.
Все что понадобится для использования «мобильника» в качестве веб-камеры — это установить на смартфон и компьютер специальные приложения, после чего произвести сопряжение устройств через USB-шнурок или по сети Wi-Fi. При этом качество транслируемого изображения будет зависеть как от характеристик камер на борту смартфона, так и от версии ПО. Как правило, бесплатные ревизии программ выдают картинку в урезанном разрешении, в них часто мелькает реклама или ограничен доступ к некоторым функциям (например, записи звука).
Для Android-девайсов наибольшим спросом пользуется приложение DroidCam.
DroidCam
Программа распространяется в бесплатном доступе из магазина Google Play Market. Клиент приложения для ПК доступен для скачивания по следующей ссылке: https://www.dev47apps.com/. Сопряжение между «мобильником» и компьютером производится по USB или Wi-Fi (если ПК и смартфон подключены к одной беспроводной сети). Соответствующие пиктограммы отображаются в главном меню клиента приложения для компьютера. Также не забудьте поставить галочки напротив пунктов «Video» и «Audio»:
Красными кружочками в интерфейсе настольного клиента DroidCam обведены варианты подключения смартфона к ПК и галочки передачи видео/аудио. |
При подключении по Wi-Fi в графу «Device IP» на компьютере необходимо вписать IP-адрес смартфона в сети. Он высвечивается первой строкой в главном меню мобильного приложения. Трансляция с камеры телефона запустится автоматически. Пользователю станет доступно переключение между основной и селфи-камерой мобильного устройства.
По умолчанию трансляция с камеры «мобильника» ведется в разрешении 640х480 пикселей. Форматы изображения HD и FullHD доступны в Pro-редакции программы. Также в платной версии приложения пользователь вправе оперировать другими полезными опциями на манер масштабирования изображения, его поворота и отзеркаливания, возможности делать скриншоты.
iVCam
Бесплатная программа с поддержкой Android-смартфонов и мобильных устройств под управлением iOS. Компьютерный клиент приложения устанавливается только на ПК с «операционкой» Windows. Скачать его можно по ссылке: https://www.e2esoft.com/ivcam/.
Первичное сопряжение «мобильника» с компьютером производится по беспроводной сети полностью в автоматическом режиме без вмешательств со стороны пользователя:
При нахождении в одной сети Wi-Fi смартфон и компьютер с приложением iVCam находят друг друга автоматически. |
Как только устройства найдут друг-друга, трансляция с камеры смартфона запускается тапом по виртуальной кнопке «Play» в центре нижней доли экрана. Из настроек пользователю доступны опции включения/выключения вспышки, улучшения изображения, отзеркаливания картинки, переключения камер, установки fps, выдержки, баланса белого, цветовой температуры и т.п. Также в мобильном приложении можно делать скриншоты и сохранять видеофайлы, которые отправляются в отдельную папку на компьютере.
В интерфейсе мобильного приложения представлен большой ряд настроек видеотрансляции. |
При использовании сервисов Zoom или Skype в их настройках необходимо найти пункт, где выбирается, с какой камеры будет подаваться изображение. Установите в нем e2eSoft iVCam.
Приложение iVCam отлично работает и в бесплатной версии. Однако вам придется мириться с постоянно всплывающей рекламой (в т.ч. рекламными видеороликами, которые можно пропустить лишь спустя определенное время просмотра).
Источник
Виртуальная камера в 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р.
Не знаю как.
Но вот выхлопы (кое-что видно):
Источник