|
210 | 210 | }; |
211 | 211 |
|
212 | 212 | Camera.checkAlreadyCaptured = (function () { |
213 | | -var enumerateDevices; |
| 213 | +var mediaDevices = navigator.mediaDevices, |
| 214 | +MediaStreamTrack = window.MediaStreamTrack, |
| 215 | +navigatorEnumerateDevices = navigator.enumerateDevices, |
| 216 | +enumerateDevices; |
214 | 217 |
|
215 | | -if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) { |
| 218 | +if (mediaDevices && mediaDevices.enumerateDevices) { |
216 | 219 | enumerateDevices = function (callback) { |
217 | | -navigator.mediaDevices.enumerateDevices().then(callback); |
| 220 | +mediaDevices.enumerateDevices().then(callback); |
218 | 221 | }; |
219 | | -} else if (!enumerateDevices && window.MediaStreamTrack && window.MediaStreamTrack.getSources) { |
220 | | -enumerateDevices = window.MediaStreamTrack.getSources.bind(window.MediaStreamTrack); |
221 | | -} else if (!enumerateDevices && navigator.enumerateDevices) { |
222 | | -enumerateDevices = enumerateDevices.bind(navigator); |
| 222 | +} else if (MediaStreamTrack && MediaStreamTrack.getSources) { |
| 223 | +enumerateDevices = MediaStreamTrack.getSources.bind(MediaStreamTrack); |
| 224 | +} else if (navigatorEnumerateDevices) { |
| 225 | +enumerateDevices = navigatorEnumerateDevices.bind(navigator); |
223 | 226 | } |
224 | 227 |
|
225 | 228 | return function (callback) { |
226 | 229 | if (!enumerateDevices) { |
227 | | -callback && callback(false); |
| 230 | +callback(false); |
228 | 231 | return; |
229 | 232 | } |
230 | 233 |
|
231 | 234 | enumerateDevices(function (devices) { |
232 | | -var device; |
| 235 | +var deviceExists = devices.some(function (device) { |
| 236 | +return (device.kind === 'videoinput' || device.kind === 'video') && device.label; |
| 237 | +}); |
233 | 238 |
|
234 | | -for (var i = 0; i < devices.length; i++) { |
235 | | -device = devices[i]; |
236 | | - |
237 | | -if ((device.kind === 'videoinput' || device.kind === 'video') && device.label) { |
238 | | -callback && callback(true); |
239 | | -return; |
240 | | -} |
241 | | -} |
242 | | - |
243 | | -callback && callback(false); |
| 239 | +callback(deviceExists); |
244 | 240 | }); |
245 | 241 | }; |
246 | 242 |
|
|
0 commit comments