Skip to content

Commit 397ac98

Browse files
committed
add Camera.checkAlreadyCaptured
1 parent 3f9aff9 commit 397ac98

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

lib/FileAPI.Camera.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,45 @@
209209
callback('not_support_camera');
210210
};
211211

212+
Camera.checkAlreadyCaptured = (function () {
213+
var enumerateDevices;
214+
215+
if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
216+
enumerateDevices = function (callback) {
217+
navigator.mediaDevices.enumerateDevices().then(callback);
218+
};
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);
223+
}
224+
225+
return function (callback) {
226+
var isFound;
227+
228+
if (!enumerateDevices) {
229+
callback && callback(false);
230+
return;
231+
}
232+
233+
enumerateDevices(function (devices) {
234+
var device;
235+
236+
for (var i = 0; i < devices.length; i++) {
237+
device = devices[i];
238+
239+
if ((device.kind === 'videoinput' || device.kind === 'video') && device.label) {
240+
isFound = true;
241+
callback && callback(true);
242+
break;
243+
}
244+
}
245+
});
246+
247+
!isFound && callback && callback(false);
248+
};
249+
})();
250+
212251

213252
/**
214253
* @classFileAPI.Camera.Shot

0 commit comments

Comments
 (0)