getVideoCompressed method

Future<void> getVideoCompressed(
  1. XFile imageFile,
  2. String type
)

Compresses the given video file.

imageFile is the video file to be compressed.

Implementation

Future<void> getVideoCompressed(XFile imageFile, String type) async {
  File file = File(imageFile.path);
  int sizeBytes = file.lengthSync();
  double sizeMb = sizeBytes / (1024 * 1024);

  if (sizeMb < 30) {
    callback.success(
      fileData: ReturnModel(
        filePath: imageFile.path,
        fileName: imageFile.path.split('/').last,
        fileExtension: getFileExtension(imageFile.path),
        size: sizeMb,
      ),
      type: type,
    );
    return;
  }

  // final info = await VideoCompress.compressVideo(
  //   file.path,
  //   quality: VideoQuality.Res960x540Quality,
  //   deleteOrigin: false,
  //   includeAudio: true,
  // );

  if (imageFile != null) {
    File compressedFile = File(imageFile.path ?? "");
    int compressedSizeBytes = compressedFile.lengthSync();
    double compressedSizeMb = compressedSizeBytes / (1024 * 1024);

    callback.success(
      fileData: ReturnModel(
        filePath: compressedFile.path,
        fileName: compressedFile.path.split('/').last,
        fileExtension: getFileExtension(compressedFile.path),
        size: compressedSizeMb,
      ),
      type: type,
    );
  } else {
    callback.error('Video compression failed');
  }
}