generateVideo method
Genrates video in the output path.
Implementation
Future<void> generateVideo() async {
String? outputPath = savePath ??
await getApplicationDocumentsDirectory()
.then((value) => value.path + '/');
int time = DateTime.now().millisecond;
String trimmedVideo =
'$outputPath${'trimmed_$time'}.${outputFormat.toString().split(".").last}';
String? outputVideo =
'$outputPath${videoFileName ?? 'videowatermark_$time'}.${outputFormat.toString().split(".").last}';
if (videoTrim != null) {
double _progress = 0;
await _trimVideo(
trimmedVideo,
(tempVideoSave) {
if (tempVideoSave) {
if (watermark != null) {
_addWatermark(
trimmedVideo,
outputVideo,
(outputVideoSave) {
if (outputVideoSave) {
File(trimmedVideo).delete();
onSave?.call(outputVideo);
}
},
(p) {
progress?.call(_progress + p / 2);
},
);
} else {
onSave?.call(trimmedVideo);
}
}
},
(p) {
if (watermark != null) {
_progress = p / 2;
} else {
_progress = p;
}
progress?.call(_progress);
},
);
} else {
_addWatermark(
sourceVideoPath,
outputVideo,
(outputVideoSave) {
if (outputVideoSave) {
onSave?.call(outputVideo);
}
},
progress,
);
}
}