face_plugin.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:flutter/foundation.dart';
  2. import 'package:flutter/services.dart';
  3. import 'face_config.dart';
  4. class FacePlugin {
  5. MethodChannel _channel = MethodChannel("plugin.bughub.dev/fltbdface");
  6. Stream<dynamic> _eventStream =
  7. EventChannel("plugin.bughub.dev/event").receiveBroadcastStream();
  8. initialize(
  9. {required String licenseId,
  10. required String licenseFileName,
  11. Function? onSuccess,
  12. Function? onFailed}) {
  13. _channel.invokeMethod("initialize", {
  14. "licenseId": licenseId,
  15. "licenseFileName": licenseFileName
  16. }).catchError((error) {
  17. print("initialize:$error");
  18. });
  19. _eventStream.listen((value) {
  20. if (value['event'] == 'initialize' && value['status'] == 0) {
  21. onSuccess?.call();
  22. }
  23. }, onError: (error) {
  24. onFailed?.call(error);
  25. });
  26. return this;
  27. }
  28. setFaceConfig(FaceConfig _config) {
  29. _channel
  30. .invokeMethod("setFaceConfig", _config.toJson())
  31. .catchError((error) {
  32. print("setFaceConfig:$error");
  33. });
  34. }
  35. startFaceLiveness({required Function data, required Function onFailed}) {
  36. _channel.invokeMethod("startFaceLiveness").catchError((error) {
  37. print("startFaceLiveness:$error");
  38. onFailed.call(error);
  39. });
  40. _eventStream.listen((value) {
  41. debugPrint(value.toString());
  42. if (value['event'] == 'startFaceLiveness') {
  43. data.call(value['data']);
  44. }
  45. }, onError: (error) {
  46. onFailed.call(error);
  47. });
  48. }
  49. }