diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js index 7098781593a770cde659c51835c26b796716e3e5..b0782d32b69079364401deee086808a48eafab47 100644 --- a/packages/qr-code-scanner/src/qr-code-scanner.js +++ b/packages/qr-code-scanner/src/qr-code-scanner.js @@ -309,10 +309,10 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { * * @param e */ - updateSource(e) { + async _onUpdateSource(e) { this._activeCamera = e.srcElement.value; - this.stopScanning(); - this.startScanning(); + await this.stopScanning(); + await this.startScanning(); console.log("Changed Media"); } @@ -320,7 +320,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { * Stops the active video and scan process * */ - stopScanning() { + async stopScanning() { if (this._videoElement !== null) { let video = this._videoElement; video.srcObject.getTracks().forEach(function(track) { @@ -447,7 +447,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { <button class="start button is-primary ${classMap({hidden: this._videoRunning})}" @click="${() => this.startScanning()}" title="${i18n.t('start-scan')}">${i18n.t('start-scan')}</button> <button class="stop button is-primary ${classMap({hidden: !this._videoRunning})}" @click="${() => this.stopScanning()}" title="${i18n.t('stop-scan')}">${i18n.t('stop-scan')}</button> - <select id="videoSource" class="button" @change=${this.updateSource}> + <select id="videoSource" class="button" @change=${this._onUpdateSource}> ${Array.from(this._devices).map(item => html`<option value="${item[0]}">${item[1]}</option>`)} </select>