Cordova Instascan - Невозможно получить доступ к видеопотоку - PullRequest
0 голосов
/ 01 апреля 2019

Я работаю над приложением Cordova. Я хочу реализовать читатель qrcode. Я пробовал плагины, доступные в Cordova, но все они глючные, а некоторые не обеспечивают предварительный просмотр сканера / видео на одном экране.

Поэтому я решил использовать instascan - библиотеку на основе js, которая будет использоваться с веб-камерами. Я использовал его и реализовал в простом приложении Cordova, и он работает.

Теперь я вижу предварительный просмотр моего сканирования (видео с камеры, которое в настоящее время сканируется), и оно сканируется идеально.

Но позже я объединил этот код с моим настоящим приложением Cordova, которое использует Vue cli. Теперь я получаю:

Ошибка: невозможно получить доступ к видеопотоку (NotReadableError)

Эта ошибка, вероятно, (как я читал) из-за политики Chrome https. Но проблема в том, что Cordova использует webview, а другое приложение cordova, которое является базовым экземпляром cordova с этим плагином, работает отлично.

Моя реализация:

mounted: function () {

var _this = this;

    this.$ons.ready(function () { // this is ready event fired by Onsen UI when cordova's native APIs are loaded

        var scanner = new Instascan.Scanner({
            continuous: true,
            mirror: false,
            video: document.getElementById('scannerPreview'),
        });

        scanner.addListener('scan', function (content) {
            alert('scan' + content);
        });

        Instascan.Camera.getCameras().then(function (cameras) {
            if (cameras.length > 0) {

                if (cameras.length === 1) {
                    scanner.start(cameras[0]);
                } else {
                    scanner.start(cameras[1]);
                }

                scanner.start(cameras[0]);
            } else {
                alert('No cameras found.');
            }
        }).catch(function (e) {
            alert(e);
        });

    });

},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...