Navaron Bracke

implement size getter

1 import 'dart:async'; 1 import 'dart:async';
2 import 'dart:js_interop'; 2 import 'dart:js_interop';
  3 +import 'dart:ui';
3 4
4 import 'package:js/js.dart'; 5 import 'package:js/js.dart';
5 import 'package:mobile_scanner/src/enums/barcode_format.dart'; 6 import 'package:mobile_scanner/src/enums/barcode_format.dart';
@@ -22,6 +23,20 @@ final class ZXingBarcodeReader extends BarcodeReader { @@ -22,6 +23,20 @@ final class ZXingBarcodeReader extends BarcodeReader {
22 bool get isScanning => _reader?.stream != null; 23 bool get isScanning => _reader?.stream != null;
23 24
24 @override 25 @override
  26 + Size get videoSize {
  27 + final web.HTMLVideoElement? videoElement = _reader?.videoElement;
  28 +
  29 + if (videoElement == null) {
  30 + return Size.zero;
  31 + }
  32 +
  33 + return Size(
  34 + videoElement.videoWidth.toDouble(),
  35 + videoElement.videoHeight.toDouble(),
  36 + );
  37 + }
  38 +
  39 + @override
25 String get scriptUrl => 'https://unpkg.com/@zxing/library@0.19.1'; 40 String get scriptUrl => 'https://unpkg.com/@zxing/library@0.19.1';
26 41
27 /// Get the barcode format from the ZXing library, for the given [format]. 42 /// Get the barcode format from the ZXing library, for the given [format].