wrapControllerMethod<T> method

Future<T> wrapControllerMethod<T>(
  1. String key,
  2. Future<T> method(), {
  3. CameraDescription? description,
  4. VoidCallback? onError,
  5. T? fallback,
})

Wraps CameraController methods with invalid controls. Returns the fallback value if invalid and T is non-void.

对于 CameraController 的方法增加是否无效的控制。 如果 T 是非 void 且方法无效,返回 fallback

Implementation

Future<T> wrapControllerMethod<T>(
  String key,
  Future<T> Function() method, {
  CameraDescription? description,
  VoidCallback? onError,
  T? fallback,
}) async {
  description ??= currentCamera;
  if (invalidControllerMethods[description]!.contains(key)) {
    return fallback!;
  }
  try {
    return await method();
  } catch (e) {
    invalidControllerMethods[description]!.add(key);
    onError?.call();
    rethrow;
  }
}