add singleton trick
This commit is contained in:
@@ -2,10 +2,10 @@ import 'dart:async';
|
||||
import 'package:synchronized/synchronized.dart';
|
||||
import 'package:video_compress/video_compress.dart';
|
||||
|
||||
class CompressVideoService {
|
||||
static final CompressVideoService instance = CompressVideoService._();
|
||||
class ICompressVideoService {
|
||||
static final ICompressVideoService instance = ICompressVideoService._();
|
||||
final _lock = Lock();
|
||||
CompressVideoService._();
|
||||
ICompressVideoService._();
|
||||
|
||||
Future<MediaInfo> compressVideo(String path) async {
|
||||
return _lock.synchronized(() {
|
||||
@@ -15,3 +15,6 @@ class CompressVideoService {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ICompressVideoService get CompressVideoService =>
|
||||
ICompressVideoService.instance;
|
||||
|
||||
@@ -866,8 +866,7 @@ class MessageInputState extends State<MessageInput> {
|
||||
|
||||
if (file.size > _kMaxAttachmentSize) {
|
||||
if (medium.mediaType == MediaType.video) {
|
||||
final mediaInfo =
|
||||
await CompressVideoService.instance.compressVideo(file.path);
|
||||
final mediaInfo = await CompressVideoService.compressVideo(file.path);
|
||||
|
||||
if (mediaInfo.filesize / (1024 * 1024) > _kMaxAttachmentSize) {
|
||||
Scaffold.of(context).showSnackBar(
|
||||
@@ -1561,8 +1560,7 @@ class MessageInputState extends State<MessageInput> {
|
||||
|
||||
if (file.size > _kMaxAttachmentSize) {
|
||||
if (attachmentType == 'video') {
|
||||
final mediaInfo =
|
||||
await CompressVideoService.instance.compressVideo(file.path);
|
||||
final mediaInfo = await CompressVideoService.compressVideo(file.path);
|
||||
file = PlatformFile(
|
||||
name: mediaInfo.title,
|
||||
size: mediaInfo.filesize,
|
||||
|
||||
Reference in New Issue
Block a user