camera_view.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'dart:async';
  2. import 'dart:io';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/services.dart';
  5. import 'package:flutter_ali_camera/camera_export.dart';
  6. typedef OnCameraViewCreated(CameraViewController controller);
  7. class CameraView extends StatefulWidget {
  8. final OnCameraViewCreated onCameraViewCreated;
  9. const CameraView({Key key, this.onCameraViewCreated}) : super(key: key);
  10. @override
  11. _CameraViewState createState() => _CameraViewState();
  12. }
  13. class _CameraViewState extends State<CameraView> {
  14. static const String viewType = "com.i2edu.cameraLib";
  15. @override
  16. Widget build(BuildContext context) {
  17. return Platform.isAndroid
  18. ? AndroidView(
  19. viewType: viewType,
  20. creationParams: {},
  21. creationParamsCodec: const StandardMessageCodec(),
  22. onPlatformViewCreated: onPlatformViewCreated,
  23. )
  24. : UiKitView(
  25. viewType: viewType,
  26. creationParams: {},
  27. creationParamsCodec: const StandardMessageCodec(),
  28. onPlatformViewCreated: onPlatformViewCreated,
  29. );
  30. }
  31. void onPlatformViewCreated(int viewId) {
  32. final CameraViewController controller = CameraViewController(id: viewId);
  33. if (widget.onCameraViewCreated != null) {
  34. widget.onCameraViewCreated(controller);
  35. }
  36. }
  37. }