@wemap/camera 5.4.6 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/wemap-camera.es.js
CHANGED
|
@@ -15,6 +15,7 @@ class SharedCameras extends EventEmitter {
|
|
|
15
15
|
return this._instance;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/** @type {{container: Node, camera: Camera}[]} */
|
|
18
19
|
_list = [];
|
|
19
20
|
|
|
20
21
|
/**
|
|
@@ -38,10 +39,17 @@ class SharedCameras extends EventEmitter {
|
|
|
38
39
|
this.emit('removed', { camera });
|
|
39
40
|
}
|
|
40
41
|
|
|
42
|
+
/**
|
|
43
|
+
* @returns {{container: Node, camera: Camera}[]}
|
|
44
|
+
*/
|
|
41
45
|
get list() {
|
|
42
46
|
return this._list;
|
|
43
47
|
}
|
|
44
48
|
|
|
49
|
+
/**
|
|
50
|
+
* @param {Node} container
|
|
51
|
+
* @returns {?Camera}
|
|
52
|
+
*/
|
|
45
53
|
getCameraByContainer(container) {
|
|
46
54
|
for (const {
|
|
47
55
|
camera, container: _container
|
|
@@ -58,7 +66,7 @@ var SharedCameras$1 = SharedCameras.instance;
|
|
|
58
66
|
|
|
59
67
|
/**
|
|
60
68
|
* @param {number} angle
|
|
61
|
-
* @param {
|
|
69
|
+
* @param {number} aspectRatio
|
|
62
70
|
* @returns {number}
|
|
63
71
|
*/
|
|
64
72
|
function convertFov(angle, aspectRatio) {
|
|
@@ -241,7 +249,9 @@ class Camera extends EventEmitter {
|
|
|
241
249
|
}
|
|
242
250
|
|
|
243
251
|
if (testUserMedia) {
|
|
244
|
-
const stream = await navigator.mediaDevices.getUserMedia(
|
|
252
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
253
|
+
audio: false, video: { facingMode: 'environment' }
|
|
254
|
+
});
|
|
245
255
|
if (stream.stop) {
|
|
246
256
|
stream.stop();
|
|
247
257
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wemap-camera.es.js","sources":["../src/SharedCameras.js","../src/CameraUtils.js","../src/Camera.js","../src/QrCodeScanner.js"],"sourcesContent":["import EventEmitter from 'events';\n\nimport Camera from './Camera.js';\n\nclass SharedCameras extends EventEmitter {\n\n /**\n * Singleton pattern.\n * @returns {SharedCameras}\n */\n static get instance() {\n if (!this._instance) {\n this._instance = new SharedCameras();\n }\n return this._instance;\n }\n\n _list = [];\n\n /**\n * @param {Camera} camera\n * @param {Node}\n */\n _add(camera, container) {\n const obj = {\n camera,\n container\n };\n this._list.push(obj);\n this.emit('added', obj);\n }\n\n /**\n * @param {Camera} camera\n */\n _remove(camera) {\n this._list = this._list.filter(({ camera: _camera }) => _camera !== camera);\n this.emit('removed', { camera });\n }\n\n get list() {\n return this._list;\n }\n\n getCameraByContainer(container) {\n for (const {\n camera, container: _container\n } of this._list) {\n if (container === _container) {\n return camera;\n }\n }\n return null;\n }\n}\n\nexport default SharedCameras.instance;\n","/**\n * @param {number} angle\n * @param {numer} aspectRatio\n * @returns {number}\n */\nexport function convertFov(angle, aspectRatio) {\n return 2 * Math.atan(Math.tan((angle / 180 * Math.PI) / 2) * aspectRatio) * 180 / Math.PI;\n}\n\n/**\n * @param {HTMLDivElement} videoContainer\n * @param {HTMLVideoElement} videoElement\n * @param {number} hardwareVerticalFov\n * @returns {object}\n */\nexport function calcDisplayedFov(videoContainer, videoElement, hardwareVerticalFov) {\n\n const sourceWidth = videoElement.videoWidth;\n const sourceHeight = videoElement.videoHeight;\n\n const containerWidth = videoContainer.offsetWidth;\n const containerHeight = videoContainer.offsetHeight;\n\n const sourceAspect = sourceWidth / sourceHeight;\n const screenAspect = containerWidth / containerHeight;\n\n let fovV = hardwareVerticalFov;\n let fovH = convertFov(fovV, sourceAspect);\n\n if (screenAspect < sourceAspect) {\n fovH = convertFov(fovV, screenAspect);\n } else {\n fovV = convertFov(fovH, 1 / screenAspect);\n }\n\n return {\n vertical: fovV,\n horizontal: fovH\n };\n}\n","import EventEmitter from 'events';\n\nimport SharedCameras from './SharedCameras.js';\nimport { calcDisplayedFov } from './CameraUtils.js';\n\n// Helped from https://github.com/jeromeetienne/AR.js/blob/master/three.js/src/threex/threex-artoolkitsource.js\n\n// Camera preview will fill component bounds without transformations.\n// If the component aspect ratio is different from camera aspect ratio,\n// camera preview is extended then cropped.\nclass Camera extends EventEmitter {\n\n static DEFAULT_OPTIONS = {\n width: 1024,\n height: 768,\n resizeOnWindowChange: false\n };\n\n static GENERIC_HARDWARE_VERTICAL_FOV = 60;\n\n videoContainer;\n videoElement;\n\n fov = null;\n\n _isStarted = false;\n\n _hardwareVerticalFov = Camera.GENERIC_HARDWARE_VERTICAL_FOV;\n _resizeOnWindowChange;\n\n /**\n * @param {Node} container\n * @param {{width: number, height: number, resizeOnWindowChange: boolean}} options\n */\n constructor(container, options = {}) {\n super();\n\n options = Object.assign({}, Camera.DEFAULT_OPTIONS, options);\n\n SharedCameras._add(this, container);\n\n this.videoContainer = container;\n\n this._resizeOnWindowChange = options.resizeOnWindowChange;\n this._userMediaConstraints = {\n audio: false,\n video: {\n facingMode: 'environment',\n width: { ideal: options.width },\n height: { ideal: options.height }\n }\n };\n\n this.videoContainer.style.overflow = 'hidden';\n\n this.videoElement = document.createElement('video');\n this.videoElement.setAttribute('id', 'wemap-camera');\n this.videoElement.setAttribute('preload', 'none');\n this.videoElement.setAttribute('muted', '');\n this.videoElement.setAttribute('playsinline', '');\n this.videoContainer.appendChild(this.videoElement);\n }\n\n async start() {\n\n if (this._isStarted) {\n throw new Error('Camera is already started');\n }\n\n this._isStarted = true;\n\n await Camera.checkAvailability();\n\n const stream = await navigator.mediaDevices.getUserMedia(this._userMediaConstraints);\n\n // Listeners have to be set before srcObject assigment or they can be never called\n this.videoElement.oncanplaythrough = () => this.videoElement.play();\n const metadataPr = new Promise(resolve => (this.videoElement.onloadedmetadata = resolve));\n\n this.videoElement.srcObject = this.videoStream = stream;\n await metadataPr;\n\n this._resizeElement();\n this._computeFov();\n\n if (this._resizeOnWindowChange) {\n window.addEventListener('resize', this.notifyContainerSizeChanged);\n }\n\n this.emit('start', {\n videoElement: this.videoElement,\n stream\n });\n }\n\n async stop() {\n\n if (!this._isStarted) {\n throw new Error('Camera is not started yet');\n }\n\n this.emit('stop');\n\n if (this.videoStream && this.videoStream.stop) {\n // compatibility with old JS API\n this.videoStream.stop();\n } else if (this.videoStream) {\n // new JS API\n this.videoStream.getVideoTracks().forEach(track => track.stop());\n }\n this.videoStream = null;\n this.videoElement.srcObject = null;\n\n if (this._resizeOnWindowChange) {\n window.removeEventListener('resize', this.notifyContainerSizeChanged);\n }\n this._isStarted = false;\n }\n\n release() {\n SharedCameras._remove(this);\n }\n\n static async checkAvailability(testUserMedia = false) {\n\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not present in your browser');\n }\n\n if (!navigator.mediaDevices.enumerateDevices) {\n throw new Error('navigator.mediaDevices.enumerateDevices not present in your browser');\n }\n\n if (!navigator.mediaDevices.getUserMedia) {\n throw new Error('navigator.mediaDevices.getUserMedia not present in your browser');\n }\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n if (!devices.find(device => device.kind === 'videoinput')) {\n throw new Error('No camera found');\n }\n\n if (testUserMedia) {\n const stream = await navigator.mediaDevices.getUserMedia(this._userMediaConstraints);\n if (stream.stop) {\n stream.stop();\n } else {\n stream.getVideoTracks().forEach(track => track.stop());\n }\n }\n }\n\n get isStarted() {\n return this._isStarted;\n }\n\n set hardwareVerticalFov(hardwareVerticalFov) {\n this._hardwareVerticalFov = hardwareVerticalFov;\n this._computeFov();\n }\n\n notifyContainerSizeChanged = () => {\n this._resizeElement();\n this._computeFov();\n }\n\n _resizeElement = () => {\n\n if (!this.videoElement) {\n throw new Error('No video element found');\n }\n\n const sourceWidth = this.videoElement.videoWidth;\n const sourceHeight = this.videoElement.videoHeight;\n\n const containerWidth = this.videoContainer.offsetWidth;\n const containerHeight = this.videoContainer.offsetHeight;\n\n const sourceAspect = sourceWidth / sourceHeight;\n const screenAspect = containerWidth / containerHeight;\n\n if (screenAspect < sourceAspect) {\n\n const newWidth = sourceAspect * containerHeight;\n this.videoElement.style.width = newWidth + 'px';\n this.videoElement.style.marginLeft = -(newWidth - containerWidth) / 2 + 'px';\n\n this.videoElement.style.height = containerHeight + 'px';\n this.videoElement.style.marginTop = '0px';\n\n } else {\n\n const newHeight = 1 / (sourceAspect / containerWidth);\n this.videoElement.style.height = newHeight + 'px';\n this.videoElement.style.marginTop = -(newHeight - containerHeight) / 2 + 'px';\n\n this.videoElement.style.width = containerWidth + 'px';\n this.videoElement.style.marginLeft = '0px';\n }\n\n }\n\n _computeFov = () => {\n\n this.fov = calcDisplayedFov(\n this.videoContainer,\n this.videoElement,\n this._hardwareVerticalFov\n );\n\n this.emit('fov.changed', this.fov);\n }\n}\n\nexport default Camera;\n","/* eslint-disable max-statements */\nimport EventEmitter from 'events';\nimport {\n MultiFormatReader,\n BarcodeFormat,\n DecodeHintType,\n RGBLuminanceSource,\n BinaryBitmap,\n HybridBinarizer\n} from '@zxing/library';\n\nimport Camera from './Camera.js';\n\nclass QrCodeScanner extends EventEmitter {\n\n static DEFAULT_FORMATS = [\n BarcodeFormat.QR_CODE,\n BarcodeFormat.DATA_MATRIX,\n BarcodeFormat.CODABAR\n ];\n\n /**\n * @type {Camera}\n */\n _camera;\n\n /**\n * @type {HTMLVideoElement}\n */\n _videoElement;\n\n /**\n * @type {HTMLCanvasElement}\n */\n _canvas;\n\n /**\n * @type {CanvasRenderingContext2D}\n */\n _ctx;\n\n /**\n * @type {MultiFormatReader}\n */\n _codeReader;\n\n /**\n * @type {number}\n */\n _intervalTime;\n\n /**\n * @type {number}\n */\n _intervalTick;\n\n /**\n * @type {boolean}\n */\n _isStarted = false;\n\n\n /**\n * @param {Camera} camera\n */\n constructor(camera) {\n super();\n\n this._camera = camera;\n this._videoElement = camera.videoElement;\n\n this._codeReader = new MultiFormatReader();\n\n this._canvas = document.createElement('canvas');\n this._ctx = this._canvas.getContext('2d');\n\n this._camera.on('start', () => this._tryStart());\n this._camera.on('stop', () => this._stop());\n }\n\n start(intervalTime = 500, formats = QrCodeScanner.DEFAULT_FORMATS) {\n this._intervalTime = intervalTime;\n\n if (this._isStarted) {\n return;\n }\n this._isStarted = true;\n\n const hints = new Map();\n hints.set(DecodeHintType.POSSIBLE_FORMATS, formats);\n this._codeReader.setHints(hints);\n\n this._tryStart();\n }\n\n stop() {\n this._isStarted = false;\n this._stop();\n }\n\n _tryStart() {\n\n if (!this._isStarted || !this._camera.isStarted) {\n return;\n }\n\n this._width = this._videoElement.videoWidth;\n this._height = this._videoElement.videoHeight;\n this._canvas.width = this._width;\n this._canvas.height = this._height;\n this._luminances = new Uint8Array(this._width * this._height);\n\n this._intervalTick = setInterval(() => this._onFrame(), this._intervalTime);\n }\n\n _stop() {\n clearInterval(this._intervalTick);\n }\n\n _onFrame() {\n\n if (!this._width || !this._height) {\n return;\n }\n\n this._ctx.drawImage(this._videoElement, 0, 0, this._width, this._height);\n const img = this._ctx.getImageData(0, 0, this._width, this._height);\n\n for (let i = 0; i < this._luminances.length; i++) {\n // eslint-disable-next-line no-bitwise\n this._luminances[i] = ((img.data[i * 4] + img.data[i * 4 + 1] * 2 + img.data[i * 4 + 2]) / 4) & 0xFF;\n }\n\n const binaryBitmap = new BinaryBitmap(\n new HybridBinarizer(\n new RGBLuminanceSource(this._luminances, this._width, this._height)\n )\n );\n\n try {\n const result = this._codeReader.decodeWithState(binaryBitmap);\n this.emit('scan', result.getText());\n } catch (e) {\n // do nothing\n }\n }\n}\n\nexport default QrCodeScanner;\n"],"names":["SharedCameras"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wemap-camera.es.js","sources":["../src/SharedCameras.js","../src/CameraUtils.js","../src/Camera.js","../src/QrCodeScanner.js"],"sourcesContent":["import EventEmitter from 'events';\n\nimport Camera from './Camera.js';\n\nclass SharedCameras extends EventEmitter {\n\n /**\n * Singleton pattern.\n * @returns {SharedCameras}\n */\n static get instance() {\n if (!this._instance) {\n this._instance = new SharedCameras();\n }\n return this._instance;\n }\n\n /** @type {{container: Node, camera: Camera}[]} */\n _list = [];\n\n /**\n * @param {Camera} camera\n * @param {Node}\n */\n _add(camera, container) {\n const obj = {\n camera,\n container\n };\n this._list.push(obj);\n this.emit('added', obj);\n }\n\n /**\n * @param {Camera} camera\n */\n _remove(camera) {\n this._list = this._list.filter(({ camera: _camera }) => _camera !== camera);\n this.emit('removed', { camera });\n }\n\n /**\n * @returns {{container: Node, camera: Camera}[]}\n */\n get list() {\n return this._list;\n }\n\n /**\n * @param {Node} container\n * @returns {?Camera}\n */\n getCameraByContainer(container) {\n for (const {\n camera, container: _container\n } of this._list) {\n if (container === _container) {\n return camera;\n }\n }\n return null;\n }\n}\n\nexport default SharedCameras.instance;\n","/**\n * @param {number} angle\n * @param {number} aspectRatio\n * @returns {number}\n */\nexport function convertFov(angle, aspectRatio) {\n return 2 * Math.atan(Math.tan((angle / 180 * Math.PI) / 2) * aspectRatio) * 180 / Math.PI;\n}\n\n/**\n * @param {HTMLDivElement} videoContainer\n * @param {HTMLVideoElement} videoElement\n * @param {number} hardwareVerticalFov\n * @returns {object}\n */\nexport function calcDisplayedFov(videoContainer, videoElement, hardwareVerticalFov) {\n\n const sourceWidth = videoElement.videoWidth;\n const sourceHeight = videoElement.videoHeight;\n\n const containerWidth = videoContainer.offsetWidth;\n const containerHeight = videoContainer.offsetHeight;\n\n const sourceAspect = sourceWidth / sourceHeight;\n const screenAspect = containerWidth / containerHeight;\n\n let fovV = hardwareVerticalFov;\n let fovH = convertFov(fovV, sourceAspect);\n\n if (screenAspect < sourceAspect) {\n fovH = convertFov(fovV, screenAspect);\n } else {\n fovV = convertFov(fovH, 1 / screenAspect);\n }\n\n return {\n vertical: fovV,\n horizontal: fovH\n };\n}\n","import EventEmitter from 'events';\n\nimport SharedCameras from './SharedCameras.js';\nimport { calcDisplayedFov } from './CameraUtils.js';\n\n// Helped from https://github.com/jeromeetienne/AR.js/blob/master/three.js/src/threex/threex-artoolkitsource.js\n\n// Camera preview will fill component bounds without transformations.\n// If the component aspect ratio is different from camera aspect ratio,\n// camera preview is extended then cropped.\nclass Camera extends EventEmitter {\n\n static DEFAULT_OPTIONS = {\n width: 1024,\n height: 768,\n resizeOnWindowChange: false\n };\n\n static GENERIC_HARDWARE_VERTICAL_FOV = 60;\n\n videoContainer;\n videoElement;\n\n fov = null;\n\n _isStarted = false;\n\n _hardwareVerticalFov = Camera.GENERIC_HARDWARE_VERTICAL_FOV;\n _resizeOnWindowChange;\n\n /**\n * @param {Node} container\n * @param {{width: number, height: number, resizeOnWindowChange: boolean}} options\n */\n constructor(container, options = {}) {\n super();\n\n options = Object.assign({}, Camera.DEFAULT_OPTIONS, options);\n\n SharedCameras._add(this, container);\n\n this.videoContainer = container;\n\n this._resizeOnWindowChange = options.resizeOnWindowChange;\n this._userMediaConstraints = {\n audio: false,\n video: {\n facingMode: 'environment',\n width: { ideal: options.width },\n height: { ideal: options.height }\n }\n };\n\n this.videoContainer.style.overflow = 'hidden';\n\n this.videoElement = document.createElement('video');\n this.videoElement.setAttribute('id', 'wemap-camera');\n this.videoElement.setAttribute('preload', 'none');\n this.videoElement.setAttribute('muted', '');\n this.videoElement.setAttribute('playsinline', '');\n this.videoContainer.appendChild(this.videoElement);\n }\n\n async start() {\n\n if (this._isStarted) {\n throw new Error('Camera is already started');\n }\n\n this._isStarted = true;\n\n await Camera.checkAvailability();\n\n const stream = await navigator.mediaDevices.getUserMedia(this._userMediaConstraints);\n\n // Listeners have to be set before srcObject assigment or they can be never called\n this.videoElement.oncanplaythrough = () => this.videoElement.play();\n const metadataPr = new Promise(resolve => (this.videoElement.onloadedmetadata = resolve));\n\n this.videoElement.srcObject = this.videoStream = stream;\n await metadataPr;\n\n this._resizeElement();\n this._computeFov();\n\n if (this._resizeOnWindowChange) {\n window.addEventListener('resize', this.notifyContainerSizeChanged);\n }\n\n this.emit('start', {\n videoElement: this.videoElement,\n stream\n });\n }\n\n async stop() {\n\n if (!this._isStarted) {\n throw new Error('Camera is not started yet');\n }\n\n this.emit('stop');\n\n if (this.videoStream && this.videoStream.stop) {\n // compatibility with old JS API\n this.videoStream.stop();\n } else if (this.videoStream) {\n // new JS API\n this.videoStream.getVideoTracks().forEach(track => track.stop());\n }\n this.videoStream = null;\n this.videoElement.srcObject = null;\n\n if (this._resizeOnWindowChange) {\n window.removeEventListener('resize', this.notifyContainerSizeChanged);\n }\n this._isStarted = false;\n }\n\n release() {\n SharedCameras._remove(this);\n }\n\n static async checkAvailability(testUserMedia = false) {\n\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not present in your browser');\n }\n\n if (!navigator.mediaDevices.enumerateDevices) {\n throw new Error('navigator.mediaDevices.enumerateDevices not present in your browser');\n }\n\n if (!navigator.mediaDevices.getUserMedia) {\n throw new Error('navigator.mediaDevices.getUserMedia not present in your browser');\n }\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n if (!devices.find(device => device.kind === 'videoinput')) {\n throw new Error('No camera found');\n }\n\n if (testUserMedia) {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: false, video: { facingMode: 'environment' }\n });\n if (stream.stop) {\n stream.stop();\n } else {\n stream.getVideoTracks().forEach(track => track.stop());\n }\n }\n }\n\n get isStarted() {\n return this._isStarted;\n }\n\n set hardwareVerticalFov(hardwareVerticalFov) {\n this._hardwareVerticalFov = hardwareVerticalFov;\n this._computeFov();\n }\n\n notifyContainerSizeChanged = () => {\n this._resizeElement();\n this._computeFov();\n }\n\n _resizeElement = () => {\n\n if (!this.videoElement) {\n throw new Error('No video element found');\n }\n\n const sourceWidth = this.videoElement.videoWidth;\n const sourceHeight = this.videoElement.videoHeight;\n\n const containerWidth = this.videoContainer.offsetWidth;\n const containerHeight = this.videoContainer.offsetHeight;\n\n const sourceAspect = sourceWidth / sourceHeight;\n const screenAspect = containerWidth / containerHeight;\n\n if (screenAspect < sourceAspect) {\n\n const newWidth = sourceAspect * containerHeight;\n this.videoElement.style.width = newWidth + 'px';\n this.videoElement.style.marginLeft = -(newWidth - containerWidth) / 2 + 'px';\n\n this.videoElement.style.height = containerHeight + 'px';\n this.videoElement.style.marginTop = '0px';\n\n } else {\n\n const newHeight = 1 / (sourceAspect / containerWidth);\n this.videoElement.style.height = newHeight + 'px';\n this.videoElement.style.marginTop = -(newHeight - containerHeight) / 2 + 'px';\n\n this.videoElement.style.width = containerWidth + 'px';\n this.videoElement.style.marginLeft = '0px';\n }\n\n }\n\n _computeFov = () => {\n\n this.fov = calcDisplayedFov(\n this.videoContainer,\n this.videoElement,\n this._hardwareVerticalFov\n );\n\n this.emit('fov.changed', this.fov);\n }\n}\n\nexport default Camera;\n","/* eslint-disable max-statements */\nimport EventEmitter from 'events';\nimport {\n MultiFormatReader,\n BarcodeFormat,\n DecodeHintType,\n RGBLuminanceSource,\n BinaryBitmap,\n HybridBinarizer\n} from '@zxing/library';\n\nimport Camera from './Camera.js';\n\nclass QrCodeScanner extends EventEmitter {\n\n static DEFAULT_FORMATS = [\n BarcodeFormat.QR_CODE,\n BarcodeFormat.DATA_MATRIX,\n BarcodeFormat.CODABAR\n ];\n\n /**\n * @type {Camera}\n */\n _camera;\n\n /**\n * @type {HTMLVideoElement}\n */\n _videoElement;\n\n /**\n * @type {HTMLCanvasElement}\n */\n _canvas;\n\n /**\n * @type {CanvasRenderingContext2D}\n */\n _ctx;\n\n /**\n * @type {MultiFormatReader}\n */\n _codeReader;\n\n /**\n * @type {number}\n */\n _intervalTime;\n\n /**\n * @type {number}\n */\n _intervalTick;\n\n /**\n * @type {boolean}\n */\n _isStarted = false;\n\n\n /**\n * @param {Camera} camera\n */\n constructor(camera) {\n super();\n\n this._camera = camera;\n this._videoElement = camera.videoElement;\n\n this._codeReader = new MultiFormatReader();\n\n this._canvas = document.createElement('canvas');\n this._ctx = this._canvas.getContext('2d');\n\n this._camera.on('start', () => this._tryStart());\n this._camera.on('stop', () => this._stop());\n }\n\n start(intervalTime = 500, formats = QrCodeScanner.DEFAULT_FORMATS) {\n this._intervalTime = intervalTime;\n\n if (this._isStarted) {\n return;\n }\n this._isStarted = true;\n\n const hints = new Map();\n hints.set(DecodeHintType.POSSIBLE_FORMATS, formats);\n this._codeReader.setHints(hints);\n\n this._tryStart();\n }\n\n stop() {\n this._isStarted = false;\n this._stop();\n }\n\n _tryStart() {\n\n if (!this._isStarted || !this._camera.isStarted) {\n return;\n }\n\n this._width = this._videoElement.videoWidth;\n this._height = this._videoElement.videoHeight;\n this._canvas.width = this._width;\n this._canvas.height = this._height;\n this._luminances = new Uint8Array(this._width * this._height);\n\n this._intervalTick = setInterval(() => this._onFrame(), this._intervalTime);\n }\n\n _stop() {\n clearInterval(this._intervalTick);\n }\n\n _onFrame() {\n\n if (!this._width || !this._height) {\n return;\n }\n\n this._ctx.drawImage(this._videoElement, 0, 0, this._width, this._height);\n const img = this._ctx.getImageData(0, 0, this._width, this._height);\n\n for (let i = 0; i < this._luminances.length; i++) {\n // eslint-disable-next-line no-bitwise\n this._luminances[i] = ((img.data[i * 4] + img.data[i * 4 + 1] * 2 + img.data[i * 4 + 2]) / 4) & 0xFF;\n }\n\n const binaryBitmap = new BinaryBitmap(\n new HybridBinarizer(\n new RGBLuminanceSource(this._luminances, this._width, this._height)\n )\n );\n\n try {\n const result = this._codeReader.decodeWithState(binaryBitmap);\n this.emit('scan', result.getText());\n } catch (e) {\n // do nothing\n }\n }\n}\n\nexport default QrCodeScanner;\n"],"names":["SharedCameras"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"directory": "packages/camera"
|
|
12
12
|
},
|
|
13
13
|
"name": "@wemap/camera",
|
|
14
|
-
"version": "
|
|
14
|
+
"version": "6.0.0",
|
|
15
15
|
"bugs": {
|
|
16
16
|
"url": "https://github.com/wemap/wemap-modules-js/issues"
|
|
17
17
|
},
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"events": "^3.3.0"
|
|
28
28
|
},
|
|
29
29
|
"type": "module",
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "a377d6fd98b48ce0e083ece1c695642947c456cc"
|
|
31
31
|
}
|