Skip to content

Commit b83d4f3

Browse files
committed
refactoring Camera.checkAlreadyCaptured
1 parent f6b78f2 commit b83d4f3

File tree

1 file changed

+15
-19
lines changed

1 file changed

+15
-19
lines changed

lib/FileAPI.Camera.js

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -210,37 +210,33 @@
210210
};
211211

212212
Camera.checkAlreadyCaptured = (function () {
213-
var enumerateDevices;
213+
var mediaDevices = navigator.mediaDevices,
214+
MediaStreamTrack = window.MediaStreamTrack,
215+
navigatorEnumerateDevices = navigator.enumerateDevices,
216+
enumerateDevices;
214217

215-
if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
218+
if (mediaDevices && mediaDevices.enumerateDevices) {
216219
enumerateDevices = function (callback) {
217-
navigator.mediaDevices.enumerateDevices().then(callback);
220+
mediaDevices.enumerateDevices().then(callback);
218221
};
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);
223226
}
224227

225228
return function (callback) {
226229
if (!enumerateDevices) {
227-
callback && callback(false);
230+
callback(false);
228231
return;
229232
}
230233

231234
enumerateDevices(function (devices) {
232-
var device;
235+
var deviceExists = devices.some(function (device) {
236+
return (device.kind === 'videoinput' || device.kind === 'video') && device.label;
237+
});
233238

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);
244240
});
245241
};
246242

0 commit comments

Comments
 (0)