compressVideo method
compress video from path
compress video from path
return Future<MediaInfo>
you can choose its quality by quality
,
determine whether to delete his source file by deleteOrigin
optional parameters startTime
duration
includeAudio
frameRate
example
final info = await _flutterVideoCompress.compressVideo(
file.path,
deleteOrigin: true,
);
debugPrint(info.toJson());
Implementation
Future<MediaInfo?> compressVideo(
String path, {
VideoQuality quality = VideoQuality.DefaultQuality,
bool deleteOrigin = false,
int? startTime,
int? duration,
bool? includeAudio,
int frameRate = 30,
}) async {
if (isCompressing) {
throw StateError('''VideoCompress Error:
Method: compressVideo
Already have a compression process, you need to wait for the process to finish or stop it''');
}
if (compressProgress$.notSubscribed) {
debugPrint('''VideoCompress: You can try to subscribe to the
compressProgress\$ stream to know the compressing state.''');
}
// ignore: invalid_use_of_protected_member
setProcessingStatus(true);
final jsonStr = await _invoke<String>('compressVideo', {
'path': path,
'quality': quality.index,
'deleteOrigin': deleteOrigin,
'startTime': startTime,
'duration': duration,
'includeAudio': includeAudio,
'frameRate': frameRate,
});
// ignore: invalid_use_of_protected_member
setProcessingStatus(false);
if (jsonStr != null) {
final jsonMap = json.decode(jsonStr);
return MediaInfo.fromJson(jsonMap);
} else {
return null;
}
}