1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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<AssetEntity?> 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<AssetEntity?> 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,
- ),
- ),
- ),
- ),
- );
- }
- }
|