2015-03-29 2 views
14

Я использую navigator.getUserMedia с ограничениями для доступа к веб-камера пользователя, с помощью фидера в качестве источника в HTML <video>, а затем скопировать его в поток drawImage<canvas> контекста. Я делаю все это, поэтому я могу сделать снимок с интервалом.GetUserMedia блокировки фокуса/экспозиции

Что бы я хотел сделать, после того, как страница начнет снимать снимки, заблокируйте фокус/экспозицию камеры getUserMedia, чтобы промежутки между снимками могли измениться без изменения баланса света или перефокусировки камеры.

Кто-нибудь знает, возможно ли это на стороне JS?

+6

Пока нет. К сожалению, WebRTC не разрешает доступ к фоторамкам на уровне фото, но для решения этой проблемы разрабатывается новая [Image Capture spec] (http://w3c.github.io/mediacapture-image/index.html). Однако ни один из браузеров не реализует его. – jib

+0

Chrome Beta 56 поставляется с первым черновиком API Capture Image. См. Информацию о выпуске: http://www.androidpolice.com/2016/12/14/chrome-56-beta-adds-official-web-bluetooth-api-support-experiential-webvr-apk-download/ – geekonaut

+0

Посмотрите на этот пример: https://jsfiddle.net/zlatnaspirala/u2f9wbzh/, это не webrtc. Это возможно на 100%. Посмотрите https://www.webrtc-experiment.com (запись, захват и т. Д.) –

ответ

0

У нас была такая же проблема некоторое время назад. Это происходит только на некоторых устройствах ... но даже устройства одного и того же бренда отличались поведением. Что-то в версии браузера/версии ОС/драйвера было нарушено. В некоторых устройствах фокус был заблокирован, а в других - нет. Мы просматриваем весь API, мы пробовали десятки вариантов кода инициализации, но, в конце концов, мы пришли к выводу, что не было видимого решения.

Мы добавили кнопку, чтобы перезагрузить все, чтобы решить проблему как-то ...