initialize method

Future<void> initialize({
  1. Cameras? cameras,
})

Implementation

Future<void> initialize({Cameras? cameras}) async {
  if (cameras == null && camera == null) return;
  try {
    final Map<String, dynamic> arguments = <String, dynamic>{
      'cameraId': cameras?.name ?? camera!.name,
      'resolutionPreset': resolution.toString().split('.')[1],
      'topRatio': topRatio,
      'leftRatio': leftRatio,
      'widthRatio': widthRatio,
      'heightRatio': heightRatio,
    };
    final Map<String, dynamic>? reply = await curiosityChannel
        .invokeMapMethod<String, dynamic>('initializeCameras', arguments);
    if (reply == null) return;
    textureId = reply['textureId'] as int;
    cameraState = reply['cameraState'] as String?;
    previewWidth = double.parse(reply['previewWidth'].toString());
    previewHeight = double.parse(reply['previewHeight'].toString());
    _eventChannel = const EventChannel(scannerEvent);
    _streamSubscription = _eventChannel!
        .receiveBroadcastStream(<dynamic, dynamic>{}).listen((dynamic data) {
      scanResult = ScanResult.fromJson(data as Map<dynamic, dynamic>);
      notifyListeners();
    });
  } on PlatformException catch (e) {
    /// 原生异常抛出
    log('initializeCameras PlatformException');
    log(e);
  }
}