camera_engine.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:cs_resources/theme/app_colors_theme.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:wechat_camera_picker/wechat_camera_picker.dart';
  4. import 'package:flutter/services.dart';
  5. /*
  6. * 照相机的引擎封装,目前用的 CameraPicker 插件
  7. */
  8. class CameraEngine {
  9. /// 拍照
  10. static Future<AssetEntity?> takePhoto(BuildContext context) async {
  11. return await CameraPicker.pickFromCamera(
  12. context,
  13. locale: Localizations.localeOf(context),
  14. pickerConfig: CameraPickerConfig(
  15. enableRecording: false,
  16. theme: ThemeData(
  17. brightness: Brightness.dark,
  18. colorScheme: const ColorScheme.dark(
  19. secondary: AppColorsTheme.colorPrimary, //内部按钮是这个颜色
  20. ),
  21. appBarTheme: AppBarTheme(
  22. systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
  23. statusBarColor: Colors.transparent,
  24. statusBarBrightness: Brightness.dark,
  25. statusBarIconBrightness: Brightness.light,
  26. ),
  27. ),
  28. ),
  29. ),
  30. );
  31. }
  32. /// 录制视频
  33. static Future<AssetEntity?> takeVideo(
  34. BuildContext context, {
  35. int maxRecordInSeconds = 30,
  36. }) async {
  37. return await CameraPicker.pickFromCamera(
  38. context,
  39. locale: Localizations.localeOf(context),
  40. pickerConfig: CameraPickerConfig(
  41. enableRecording: true,
  42. onlyEnableRecording: true,
  43. enableTapRecording: false,
  44. enableAudio: true,
  45. shouldAutoPreviewVideo: true,
  46. maximumRecordingDuration: Duration(seconds: maxRecordInSeconds),
  47. theme: ThemeData(
  48. brightness: Brightness.dark,
  49. colorScheme: const ColorScheme.dark(
  50. secondary: AppColorsTheme.colorPrimary,
  51. ),
  52. appBarTheme: AppBarTheme(
  53. systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
  54. statusBarColor: Colors.transparent,
  55. statusBarBrightness: Brightness.dark,
  56. statusBarIconBrightness: Brightness.light,
  57. ),
  58. ),
  59. ),
  60. ),
  61. );
  62. }
  63. }