2016-07-08 2 views
2

В орденом использовать веб-камеру из моего electron приложения я установил модуль узла webcamjs, это код, который я использовал, взятый из модуля документации:электрон - обеспечивает доступ к веб-камере

<h1>camara</h1> 
<div id="my_camera" style="width:320px; height:240px;"></div> 
<div id="my_result"></div> 

<script language="JavaScript"> 
Webcam.attach('#my_camera'); 
function take_snapshot() { 
Webcam.snap(function(data_uri) { 
    document.getElementById('my_result').innerHTML = '<img src="'+data_uri+'"/>'; 
}); 
} 
</script> 
<a href="javascript:void(take_snapshot())">Take Snapshot</a> 

При попытке доступа вебкамера, электрон бросает мне следующее исключение:

Uncaught ReferenceError: take_snapshot is not defined.

Однако, когда я испытываю тот же код из Firefox, он хорошо работает. Firefox объявляет, что пытается получить доступ к веб-камере и дал OK для завершения действия. Кроме того, из Chrome кажется, что это не разрешено, потому что он говорит мне: поддержка

Webcam.js error: Webcam is not loaded yet.

Я знаю, что нужно SSL работать в Chrome, но электрон это? Итак, любые предложения по использованию камеры от electron?

ответ

0

Вам не нужна внешняя библиотека, чтобы захватить поток веб-камеры.

В вашей HTML странице:

<video id="video" height="480" width="800" autoplay></video> 

В файле JavaScript:

const constraints = { 
    audio: false, 
    video: { 
     mandatory: { 
      maxHeight: 480, 
      maxWidth: 800, 
      minHeight: 480, 
      minWidth: 800, 
     } 
    } 
}; 

const videoElement = document.getElementById('video'); 

navigator.getUserMedia = navigator.webkitGetUserMedia; 
navigator.getUserMedia(
    constraints, 
    stream => videoElement.src = window.URL.createObjectURL(stream), 
    error => console.error(error));