import 'package:cs_resources/theme/app_colors_theme.dart'; import 'package:flutter/material.dart'; import 'package:wechat_camera_picker/wechat_camera_picker.dart'; import 'package:flutter/services.dart'; /* * 照相机的引擎封装,目前用的 CameraPicker 插件 */ class CameraEngine { /// 拍照 static Future takePhoto(BuildContext context) async { return await CameraPicker.pickFromCamera( context, locale: Localizations.localeOf(context), pickerConfig: CameraPickerConfig( enableRecording: false, lockCaptureOrientation: DeviceOrientation.portraitUp, theme: ThemeData( brightness: Brightness.dark, colorScheme: const ColorScheme.dark( secondary: AppColorsTheme.colorPrimary, //内部按钮是这个颜色 ), appBarTheme: AppBarTheme( systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith( statusBarColor: Colors.transparent, statusBarBrightness: Brightness.dark, statusBarIconBrightness: Brightness.light, ), ), ), ), ); } /// 录制视频 static Future takeVideo( BuildContext context, { int maxRecordInSeconds = 30, }) async { return await CameraPicker.pickFromCamera( context, locale: Localizations.localeOf(context), pickerConfig: CameraPickerConfig( enableRecording: true, lockCaptureOrientation: DeviceOrientation.portraitUp, onlyEnableRecording: true, enableTapRecording: false, enableAudio: true, shouldAutoPreviewVideo: true, maximumRecordingDuration: Duration(seconds: maxRecordInSeconds), theme: ThemeData( brightness: Brightness.dark, colorScheme: const ColorScheme.dark( secondary: AppColorsTheme.colorPrimary, ), appBarTheme: AppBarTheme( systemOverlayStyle: SystemUiOverlayStyle.light.copyWith( statusBarColor: Colors.transparent, statusBarBrightness: Brightness.dark, statusBarIconBrightness: Brightness.light, ), ), ), ), ); } }