enumerateCameras static method

List<CameraInfo> enumerateCameras(
  1. VideoCaptureAPIs apiPreference, {
  2. int maxCameras = 10,
})

Implementation

static List<CameraInfo> enumerateCameras(VideoCaptureAPIs apiPreference, {int maxCameras = 10}) {
  final cameras = <CameraInfo>[];
  for (var cameraIndex = 0; cameraIndex < maxCameras; cameraIndex++) {
    final camera = VideoCapture.fromDevice(cameraIndex, apiPreference: apiPreference.value);
    if (camera.isOpened) {
      final width = camera.get(CAP_PROP_FRAME_WIDTH);
      final height = camera.get(CAP_PROP_FRAME_HEIGHT);
      final fps = camera.get(CAP_PROP_FPS);
      final frameFormat = camera.get(CAP_PROP_FORMAT).toInt();
      final name = 'video_${parseFrameFormat(frameFormat)}';
      camera.release();
      cameras.add(
        CameraInfo(
          name: name,
          width: width.toInt(),
          height: height.toInt(),
          fps: fps,
          cameraIndex: cameraIndex,
          backend: apiPreference,
        ),
      );
    }
  }

  return cameras;
}