标签: quaggajs

quaggaJS:如何“暂停”解码器

我正在使用quaggaJS( https://github.com/serratus/quaggaJS ) 在 Web 应用程序中读取条形码。它工作得很好,这是我的初始化代码:

Quagga.init({
    inputStream: {
        name: "Live",
        type: "LiveStream",
        constraints: {
            width: 1280,
            height: 720,
            facingMode: "environment"
        }
    },
    decoder: {
        readers: ["code_39_reader"],
        debug: {
            drawBoundingBox: true,
            showFrequency: false,
            drawScanline: true,
            showPattern: true
        },
        multiple: false
    },
    locator: {
        halfSample: true,
        patchSize: "medium"
    }
}, function (err) {
    if (err) {
        alert(err);
        return;
    }
    Quagga.registerResultCollector(resultCollector);
    Quagga.start();
});
Run Code Online (Sandbox Code Playgroud)

这里是onDetected事件的处理:

Quagga.onDetected(function (data) {
    Quagga.stop();  // <-- I want to "pause"
    // dialog to ask …
Run Code Online (Sandbox Code Playgroud)

javascript quaggajs

8
推荐指数
1
解决办法
2208
查看次数

如何关闭相机灯(手电筒)?

我正在创建一个应用程序来读取条形码。我使用 QuaggaJS 作为条形码阅读器库。我的问题是我可以打开手电筒,但不能关闭它。

var track = Quagga.CameraAccess.getActiveTrack();
track.applyConstraints({advanced: [{torch:true}]}); //Torch is on
track.applyConstraints({advanced: [{torch:false}]}); //Torch still on :(
Run Code Online (Sandbox Code Playgroud)

有没有办法关闭手电筒?

javascript media jquery quaggajs

8
推荐指数
1
解决办法
1162
查看次数

Quagga 无法定位或解码条形码

我正在尝试使用Quagga制作条形码扫描仪。但我只能看到网络摄像头的实时版本,但它无法识别任何 ( code 128) 条码。(该代码段未在 stackoverflow 上显示网络摄像头。)

我想我错过了一步,但希望这里有人能把我推向正确的方向。

Quagga.init({
		inputStream : {
		  name : "Live",
		  type : "LiveStream",
		  target: document.querySelector('#scanblock')
		},
		decoder : {
		  readers : ["code_128_reader"]
		}
	  }, function(err) {
		  if (err) {
			  console.log(err);
			  return
		  }
		  console.log("Initialization finished. Ready to start");
		  Quagga.start();
	  });
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://serratus.github.io/quaggaJS/examples/js/quagga.min.js" type="text/javascript"></script>
  </head>
  <body>
    <header style="text-align: center; margin-top:3%;">
      <h3>Barcode Scanner</h3>
      <hr/>
    </header>
    <div style="text-align: center; margin-top: 6%;">
      <div id="scanblock"></div>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript barcode barcode-scanner quagga quaggajs

6
推荐指数
1
解决办法
4097
查看次数

如何多次使用相机流

我想创建一个充当条形码和二维码扫描仪的 PWA。为了检测 QR 码,我使用 jsQR (请参阅:https: //github.com/cozmo/jsQR),对于条形码,我想使用 QuaggaJS (请参阅: https: //serratus.github.io/quaggaJS/)。为了选择应检测的代码类型,我的网站上有一些单选按钮,它们调用函数“triggerScannerInitialization()”(见下文)。扫描二维码已经可以使用,但扫描条形码会导致一些问题。相机图像未正确加载。如果我在仅使用 QuaggaJS 的测试站点上运行相同的代码,扫描条形码就会正常工作。我认为从同一相机打开两个相机流可能会导致问题。谁能给我提示如何使用相同的相机流?

\n
// variables for stopping scanner types on next run\nlet stopJsQrOnNextRun = true;\n\nfunction triggerScannerInitialisation() {\n    // get the selected code type\n    let codeTypeSelector = document.querySelector(\'input[name="code_type_selector"]:checked\').value;\n\n    switch (codeTypeSelector) {\n        case \'barcode\':\n            stopJsQrOnNextRun = true;\n            startQuaggaJs();\n            break;\n        case \'qr\':\n            stopQuaggaJs();\n            stopJsQrOnNextRun = false;\n            startJsQr();\n            break;\n        default:\n            return false;\n    }\n}\n\nfunction startQuaggaJs() {\n    document.getElementById("barcode_camera_div").hidden = false;\n\n    Quagga.init({\n        inputStream: {\n            name: "Live",\n            type: "LiveStream",\n            target: document.querySelector(\'#barcode_camera_div\'),\n            constraints: {\n                width: 480,\n …
Run Code Online (Sandbox Code Playgroud)

javascript quagga getusermedia quaggajs

5
推荐指数
0
解决办法
1335
查看次数

QuaggaJS 与 Angular 2 问题

我正在尝试在 Angular 2 中使用 QuaggaJS。我在 app 文件夹中有 quagga.d.ts 文件,在组件中有以下导入语句:

import Quagga from './quagga.d';
Run Code Online (Sandbox Code Playgroud)

指南从“quagga”说,但它不起作用,但上面起作用

declare const Quagga = require('quagga').default;
Run Code Online (Sandbox Code Playgroud)

我在组件的构造函数中有以下代码,如下所示:

constructor() { 

    Quagga.init({
    inputStream : {
      name : "Live",
      type : "LiveStream",
      target: document.querySelector('#yourElement')    // Or '#yourElement' (optional)
    },
    decoder : {
      readers : ["code_128_reader"]
    }
  }, function(err) {
      if (err) {
          console.log(err);
          return
      }
      console.log("Initialization finished. Ready to start");
      Quagga.start();
  });


 }
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'init' of undefined 来自 …

quaggajs angular

3
推荐指数
1
解决办法
3569
查看次数

Typescript/Angular2 getUserMedia 未定义

我有一个 Ionic 2 应用程序,它使用QuaggaJS Github将相机流式传输到我的视图(Div 容器),例如 Snapchat 来扫描 QR 码。在浏览器中,这一切都像魅力一样工作,但是当它构建为 APK 或 IPA 文件时,我收到错误:

chromium: [INFO:CONSOLE(76955)] "Error: getUserMedia is not defined"
Run Code Online (Sandbox Code Playgroud)

我使用 ADB 和虚拟 Android 设备来获取 logcat 输出。 重要信息:是的,我有相机权限!

以防万一您无法想象我在说什么,这是我的页面视图的屏幕截图: 扫描仪截图

这是我的打字稿代码:

import { Component, OnInit } from '@angular/core';
import { IonicPage, NavController, NavParams, MenuController } from 'ionic-angular';
import Quagga from 'quagga';
declare var Quagga:any;

@Component({
  selector: 'page-scanner',
  templateUrl: 'scanner.html',
})
export class Scanner implements OnInit {

  constructor(public navCtrl: NavController,
    public navParams: NavParams,
    public menu: MenuController) {
  }
   ngOnInit() …
Run Code Online (Sandbox Code Playgroud)

javascript typescript ionic-framework quaggajs angular

2
推荐指数
1
解决办法
6889
查看次数