use lock in compress service
This commit is contained in:
@@ -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,
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -877,6 +877,11 @@ class MessageInputState extends State<MessageInput> {
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
setState(() {
|
||||
_attachments.remove(attachment);
|
||||
});
|
||||
return;
|
||||
}
|
||||
file = PlatformFile(
|
||||
name: file.name,
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user