Я использую угловые JS в моей передней части. Мне нужно использовать мобильную веб-камеру, чтобы сделать фотографию и использовать ее в своем приложении. Но я могу сделать снимок с передней камеры, задняя часть не работает
Я использую webcam.js для этого сценария. поэтому не могли бы вы предложить мне правильное решение для этого.
var _video = null,
patData = null;
$scope.patOpts = { x: 0, y: 0, w: 25, h: 25 };
$scope.imagId = '';
$scope.channel = {
audio: true, video: { facingMode: { exact: "environment" } }
};
$scope.webcamError = false;
$scope.onError = function (err) {
$scope.$apply(
function () {
$scope.webcamError = err;
}
);
};
$scope.onSuccess = function () {
_video = $scope.channel.video;
$scope.$apply(function () {
$scope.patOpts.w = _video.width;
$scope.patOpts.h = _video.height;
});
};
$scope.onStream = function (stream) {
};
$scope.makeSnapshot = function () {
if (_video) {
var patCanvas = document.querySelector('#snapshot');
if (!patCanvas) return;
patCanvas.width = _video.width;
patCanvas.height = _video.height;
var ctxPat = patCanvas.getContext('2d');
var idata = getVideoData($scope.patOpts.x, $scope.patOpts.y, $scope.patOpts.w, $scope.patOpts.h);
ctxPat.putImageData(idata, 0, 0);
sendSnapshotToServer(patCanvas.toDataURL());
patData = idata;
}
};
$scope.downloadSnapshot = function downloadSnapshot(dataURL) {
window.location.href = dataURL;
};
var getVideoData = function getVideoData(x, y, w, h) {
var hiddenCanvas = document.createElement('canvas');
hiddenCanvas.width = _video.width;
hiddenCanvas.height = _video.height;
var ctx = hiddenCanvas.getContext('2d');
ctx.drawImage(_video, 0, 0, _video.width, _video.height);
return ctx.getImageData(x, y, w, h);
};
var sendSnapshotToServer = function sendSnapshotToServer(imgBase64) {
$scope.snapshotData = imgBase64;
};
function isCanvasBlank(canvas) {
var blank = document.createElement('canvas');
blank.width = canvas.width;
blank.height = canvas.height;
return canvas.toDataURL() == blank.toDataURL();
}