2016-12-12 2 views
0

Цель моего веб-приложения позволяет пользователю загружать изображение с камеры и гарантировать, что изображение НЕ выбрано из пользовательского архива.Как обеспечить загрузку фотографий с камеры

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

<input id="myFileInput" type="file" accept="image/*" capture="camera"> 
<script> 
var myInput = document.getElementById('myFileInput'); 

function sendPic() { 
    var file = myInput.files[0]; 

    // Send file here 

} 

myInput.addEventListener('change', sendPic, false); 
</script> 

Любая другая идея?

ответ

3

Был подход, который можно сделать с помощью navigator.getUserMedia() API, но это опасно для устаревания и не поддерживается в Safari и Webkit.

Существует новый стандарт для этого: navigator.mediaDevices.getUserMedia(myConstraints), но он пока не поддерживается широко (поддержка в IE и Safari отсутствует).

До тех пор, пока у нас не будет реализованного API, JavaScript не сможет этого сделать. Что вам нужно - это родное приложение, которое может получить доступ к функциям телефона, которые JavaScript не может сделать.

-1

Доступ к камере из браузера с помощью javascript возможен с 2012 года. См. caniuse getUserMedia(): он поддерживается 70% используемых браузеров. Вас интересуют только мобильные устройства? Тогда процент выше.

Метод был сначала определен как navigator.getUserMedia(), но с тех пор перемещен в MediaDevices.getUserMedia().

Чтобы использовать GetUserMedia(), чтобы создать только один снимок (в отличие от видеопотока) следовать этому Tutorial on mdn и это demo, это именно то, что вы просите.

+1

См. Https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia Это устарело. Это новый стандарт: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia, но он не поддерживается широко. –

+0

navigator.getUserMedia устарел. новый метод - MediaDevices.getUserMedia(). вы можете проверить это, попробовав демонстрацию, содержащуюся в учебнике – bjelli

+0

Новый метод не поддерживается в IE и Safari, поэтому это не очень практично. –

Смежные вопросы