Как получить доступ к мобильной камере из веб-приложения?

В моем веб-приложении (не в обычном приложении) для мобильных телефонов, я хочу сделать снимок и загрузить его, но я не хочу использовать Adobe Flash. Есть ли способ сделать это?

Ответ 1

В iPhone iOS6 и Android ICS, HTML5 имеет следующий тег, который позволяет делать снимки с вашего устройства:

 <input type="file" accept="image/*" capture="camera">

Capture может принимать значения, такие как камера, видеокамера и аудио.

Я думаю, что этот тег определенно не работает в iOS5, не уверен в этом.

Ответ 2

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

Не знаю о iphone. Может быть, кто-то может просветить это. EDIT: Iphone работает аналогично.

Пример входного тега:

<input type="file" accept="image/*" capture="camera">

Ответ 3

Safari и Chrome на iOS 6+ и Android 2.2+ поддерживают функцию HTML Media Capture, которая позволяет делать снимки с помощью камеры устройства или выбирать существующую:

<input type="file" accept="image/*">

Вот как это работает на iOS 10:

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

Android 3.0+ и Safari на iOS10.3 + также поддерживают атрибут capture, который используется для прямого перехода к камере.

<input type="file" accept="image/*" capture>

capture="camera" (String) и accept="image/*;capture=camera" (Parameter) были частью старых спецификаций и были заменены на capture (Boolean) Рекомендацию кандидата W3C.

Документация по поддержке: это 2013 O'Reilly book и мое тестирование

Ответ 4

AppMobi HTML5 SDK однажды обещал доступ к встроенным функциям устройства, включая камеру, из приложения на основе HTML5, но больше не принадлежит Google. Вместо этого попробуйте ответы на основе HTML5 в этом сообщении.

Ответ 5

Ну, есть новые возможности HTML5 для доступа к собственной камере устройства - "API-интерфейс getUserMedia"

ПРИМЕЧАНИЕ. HTML5 может обрабатывать захват фотографий с веб-страницы на устройствах Android (по крайней мере, в последних версиях, запущенных ОС Honeycomb, но не может обрабатывать их на iPhone, но iOS 6).

Ответ 6

Вы можете использовать WEBRTC, но, к сожалению, он не поддерживается всеми веб-браузерами. НИЖЕ ЛИНИЯ ПОКАЗАТЬ, КОТОРЫЕ БРОУЗЕРЫ поддерживают его http://caniuse.com/stream

И эта ссылка дает вам представление о том, как вы можете получить к ней доступ (пример кода). http://www.html5rocks.com/en/tutorials/getusermedia/intro/

Ответ 7

Чтобы обновить это, теперь стандартом является:

<input type="file" name="image" accept="image/*" capture="environment">

для доступа к фронтальной камере и

<input type="file" name="image" accept="image/*" capture="user">

для пользовательской камеры. Чтобы получить доступ к видео, замените "видео" на "изображение" на имя.

Протестировано на iPhone 5c, работает iOS 10.3.3, прошивка 760, отлично работает.

https://www.w3.org/TR/html-media-capture/

Ответ 8

Я не думаю, что вы можете - есть W3C draft API, чтобы получить аудио или видео, но пока нет какой-либо реализации основных мобильных ОС.

Второй лучший Единственный вариант - пойти с предложением Денниса использовать PhoneGap. Это будет означать, что вам нужно создать собственное приложение и добавить его в магазин/рынок мобильных приложений.

Ответ 9

Я не знаю, как можно получить доступ к камере мобильного телефона из веб-браузера без какого-либо дополнительного механизма (например, Flash или какой-либо тип контейнера, который обеспечивает доступ к API-интерфейсу)

Для последних взгляните на PhoneGap: http://docs.phonegap.com/phonegap_camera_camera.md.html

С этим вы должны иметь доступ к камере, по крайней мере, на устройствах на базе iOS и Android.