import 'package:flutter/cupertino.dart';
import 'package:vid/us/vid_us_image_data.dart';

/// 截图&录制器
abstract class ICapturer {
  /// 捕获帧的宽度
  int get frameWidth;

  /// 捕获帧的高度
  int get frameHeight;

  /// 是否初始化完成
  bool get isInit;

  /// 是否正在录制
  bool get isRecording;

  /// 初始化捕获器
  Future<void> initCapturer(
      {int? width, int? height, bool isNeedCrop, Rect cropArea});

  /// 捕获一帧（立即返回 vid 文件）
  Future<VidUsImageData> captureFrame();

  /// 开始录制
  void startRecord();

  /// 停止录制（立即返回 vid 文件）
  Future<VidUsImageData> stopRecord();

  /// 释放捕获器
  void dispose();
}
