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 |
- |
|
|