preloadAnim method

Future<String> preloadAnim({
  1. required String anim,
  2. String? dir,
})

缓存动画 anim 动画相对地址 dir 动画存储地址,不传默认使用getAnimCacheDir的地址 缓存结束返回本地文件地址

Implementation

Future<String> preloadAnim({required String anim, String? dir}) async {
  try {
    final cacheDir = dir ?? await getAnimCacheDir();
    if (cacheDir?.isNotEmpty == true) {
      String cachePath = "$cacheDir$anim";
      File cacheFile = File(cachePath);
      bool exists = await cacheFile.exists();
      if (!exists) {
        await DioManager().download(url: anim, savePath: cachePath, onSuccess: (filePath) {});
        exists = await cacheFile.exists();
      }
      if (exists) {
        return Future.value(cachePath);
      }
    }
  } catch (e) {
    //do nothing
  }
  return Future.value("");
  // try {
  //   final cacheDir = dir ?? getAnimCacheDir();
  //   String cachePath = "$cacheDir$anim";
  //   File cacheFile = File(cachePath);
  //   bool exists = await cacheFile.exists();
  //   if (exists) {
  //     return Future.value(0);
  //   } else {
  //     int startTimeMs = DateTime.now().millisecondsSinceEpoch;
  //     await DioManager().download(url: anim, savePath: cachePath, onSuccess: (filePath) {});
  //     int usedTimeMs = DateTime.now().millisecondsSinceEpoch - startTimeMs;
  //     return Future.value(usedTimeMs);
  //   }
  // } catch (e) {
  //   return Future.value(-1);
  // }
}