|
Lines 83-102
function initializeCamera( camera_form ){
Link Here
|
| 83 |
}); |
83 |
}); |
| 84 |
} |
84 |
} |
| 85 |
|
85 |
|
| 86 |
function detectWebcam(callback) { |
86 |
navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix |
| 87 |
let md = navigator.mediaDevices; |
87 |
navigator.webkitGetUserMedia || |
| 88 |
if (!md || !md.enumerateDevices) return callback(false); |
88 |
navigator.mozGetUserMedia || |
| 89 |
md.enumerateDevices().then(devices => { |
89 |
navigator.msGetUserMedia); |
| 90 |
callback(devices.some(device => 'videoinput' === device.kind)); |
|
|
| 91 |
}) |
| 92 |
} |
| 93 |
|
90 |
|
| 94 |
detectWebcam(function(hasWebcam) { |
91 |
var div_take_image = document.getElementById('take_patron_image'); |
| 95 |
let div_take_image = document.getElementById('take_patron_image'); |
92 |
navigator.getMedia({video: true}, function(stream) { |
| 96 |
if (div_take_image) { |
93 |
div_take_image.style.display = 'block'; |
| 97 |
div_take_image.style.display = hasWebcam ? "block" : "none"; |
94 |
stream.getTracks().forEach(function(track) { |
|
|
95 |
if (track.readyState == 'live' && track.kind === 'video') { |
| 96 |
track.stop(); |
| 97 |
} |
| 98 |
}); |
| 99 |
}, function() { |
| 100 |
div_take_image.style.display = 'none'; |
| 98 |
} |
101 |
} |
| 99 |
}); |
102 |
); |
|
|
103 |
|
| 100 |
|
104 |
|
| 101 |
$(document).ready(function(){ |
105 |
$(document).ready(function(){ |
| 102 |
$("#trigger-webcam").on("click", function(e){ |
106 |
$("#trigger-webcam").on("click", function(e){ |
| 103 |
- |
|
|