wrapControllerMethod<T> method
Future<T?>
wrapControllerMethod<T>(
- String key,
- Future<
T> method(), { - CameraDescription? description,
- VoidCallback? onError,
- 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;
}
}