initialize method

Future<void> initialize()

Implementation

Future<void> initialize() async {
  if (_isDisposed) return Future<void>.value();

  _creatingCompleter = Completer<void>();

  try {
    final Map<dynamic, dynamic?> reply =
        await (_channel.invokeMapMethod('initialize', <String, dynamic>{
      'cameraName': description.name,
      'resolutionPreset': _serializeResolutionPreset(resolutionPreset),
    }) as FutureOr<Map<dynamic, dynamic?>>);
    _textureId = reply['textureId'];
    value = value.copyWith(
        isInitialized: true,
        previewSize: Size(reply['previewWidth'].toDouble(),
            reply['previewHeight'].toDouble()));
    _resultSubscription = EventChannel('${_scanType}_$_textureId/event')
        .receiveBroadcastStream()
        .listen(_handleResult);
  } on PlatformException catch (e) {
    //当发生权限问题的异常时会抛出
    throw RScanCameraException(e.code, e.message);
  }
  _creatingCompleter!.complete();
  return _creatingCompleter!.future;
}