use lock in compress service

This commit is contained in:
Salvatore Giordano
2020-11-26 11:23:33 +01:00
parent efd6bfdc8e
commit a636253e98
3 changed files with 14 additions and 9 deletions
+8 -9
View File
@@ -1,19 +1,18 @@
import 'dart:async';
import 'package:synchronized/synchronized.dart';
import 'package:video_compress/video_compress.dart';
class CompressVideoService {
static final CompressVideoService instance = CompressVideoService._();
final _lock = Lock();
CompressVideoService._();
Future<MediaInfo> compressVideo(String path) async {
MediaInfo mediaInfo;
while (VideoCompress.isCompressing) {
await Future.delayed(Duration(seconds: 1));
}
mediaInfo = await VideoCompress.compressVideo(
path,
);
return mediaInfo;
print('VideoCompress.isCompressing: ${VideoCompress.isCompressing}');
return _lock.synchronized(() {
return VideoCompress.compressVideo(
path,
);
});
}
}
+5
View File
@@ -877,6 +877,11 @@ class MessageInputState extends State<MessageInput> {
),
),
);
setState(() {
_attachments.remove(attachment);
});
return;
}
file = PlatformFile(
name: file.name,
+1
View File
@@ -42,6 +42,7 @@ dependencies:
permission_handler: ^5.0.1+1
transparent_image: ^1.0.0
ezanimation: ^0.4.1
synchronized: ^2.2.0+2
flutter:
assets: