Skip to content
Snippets Groups Projects
Commit 55771232 authored by Steinwender, Tamara's avatar Steinwender, Tamara
Browse files

Adding the video tag to dom QR code scanner

parent 9c6e4e92
No related branches found
No related tags found
No related merge requests found
Pipeline #13918 passed
...@@ -143,8 +143,6 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { ...@@ -143,8 +143,6 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
this._outputData = null; this._outputData = null;
this._videoRunning = false; this._videoRunning = false;
this._lock = new Mutex(); this._lock = new Mutex();
this.videoReady = false;
} }
static get scopedElements() { static get scopedElements() {
...@@ -227,12 +225,14 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { ...@@ -227,12 +225,14 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
await this.updateComplete; await this.updateComplete;
let targetCanvas = this._("#canvas"); let targetCanvas = this._("#canvas");
let targetvideo = this._("#video");
let canvasElement = document.createElement("canvas"); let canvasElement = document.createElement("canvas");
let firstDrawDone = false; let firstDrawDone = false;
this._askPermission = true; this._askPermission = true;
this._loadingMessage = i18n.t('no-camera-access'); this._loadingMessage = i18n.t('no-camera-access');
let video = await createVideoElement(this._activeCamera); let video = await createVideoElement(this._activeCamera);
targetvideo.appendChild(video);
this._askPermission = false; this._askPermission = false;
let lastCode = null; let lastCode = null;
...@@ -242,11 +242,9 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { ...@@ -242,11 +242,9 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
let detectorRunning = false; let detectorRunning = false;
const tick = () => { const tick = () => {
console.log("---", this.videoReady);
this._requestID = null; this._requestID = null;
if (video.readyState === video.HAVE_ENOUGH_DATA || this.videoReady) { if (video.readyState === video.HAVE_ENOUGH_DATA) {
this._loading = false; this._loading = false;
this.videoReady = true;
// draw into a temporary canvas first // draw into a temporary canvas first
canvasElement.height = video.videoHeight; canvasElement.height = video.videoHeight;
canvasElement.width = video.videoWidth; canvasElement.width = video.videoWidth;
...@@ -385,7 +383,6 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { ...@@ -385,7 +383,6 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
this._askPermission = false; this._askPermission = false;
this._videoRunning = false; this._videoRunning = false;
this._loading = false; this._loading = false;
this.videoReady = false;
this._loadingMessage = ''; this._loadingMessage = '';
} finally { } finally {
...@@ -501,6 +498,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { ...@@ -501,6 +498,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
</div> </div>
</div> </div>
<canvas id="canvas" class="${classMap({hidden: !showCanvas})}"></canvas> <canvas id="canvas" class="${classMap({hidden: !showCanvas})}"></canvas>
<div id="video"></div>
<div class="output ${classMap({hidden: !(this.showOutput && showCanvas)})}"> <div class="output ${classMap({hidden: !(this.showOutput && showCanvas)})}">
${ (this._outputData !== null) ? html` ${ (this._outputData !== null) ? html`
<div><b>${i18n.t('data')}:</b> <span>${this._outputData}</span></div> <div><b>${i18n.t('data')}:</b> <span>${this._outputData}</span></div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment