我正在使用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) 我正在创建一个应用程序来读取条形码。我使用 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)
有没有办法关闭手电筒?
我正在尝试使用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)
我想创建一个充当条形码和二维码扫描仪的 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) 我正在尝试在 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 来自 …
我有一个 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) quaggajs ×6
javascript ×5
angular ×2
quagga ×2
barcode ×1
getusermedia ×1
jquery ×1
media ×1
typescript ×1