一、流程
1、方案
参考:
问题:为了优化上传耗时,我们将上传所需的图片压缩提前到用户选择完图片之后。那么当点击上传的时候,需要做哪些处理?
答:1、需要先判断之前的压缩任务是否

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| class BaseAssetModel { AssetEntity? assetEntity; }
mixin AssetEntityCompressProtocol { AssetEntity? compressAssetEntity; Future<void> checkAndBeginCompress(AssetEntity assetEntity) async { compressAssetEntity = assetEntity; ....... }
ImageProvider? get compressedImageOrVideoThumbnailProvider { ...... }
Future<String?> lastUploadImagePath() async { _log("image choose bean hashCode = $hashCode"); if (compressInfoProcess == CompressInfoProcess.finishCompress) { File resultFile = imageCompressResponseBean?.reslut; return resultFile.path; }
await _compressCompleter.future; File resultFile = imageCompressResponseBean?.reslut; return resultFile.path; }
|
结束语