簡體   English   中英

無法加載資產 flutter(資產不是保存的文件)

[英]Unable to load asset flutter ( not assets is a saved file )

當用戶拍攝照片或視頻時,我將此文件保存到應用程序文件夾,當我嘗試使用 xcode 訪問保存的文件夾時,我可以毫無問題地看到圖像或視頻。

拍攝並保存這張照片后,應用程序可以訪問圖像或視頻,我可以在我的應用程序中顯示它

但過了一會兒或當我關閉並重新打開手機時,無法訪問此文件,但如果我想顯示在以 xcode 打開的應用程序文件夾中,我可以顯示該文件

這是我的保存圖像代碼

   Future<void> saveFile(BuildContext context, int fileType,
          {Function(String path) onComplete}) async {
        File file = await Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => fileType == 0 ? Camera() : Video()));
        if (file != null) {
          var savedFile = await getNewFile(file, fileType);
    
          if (fileType == 0) {
            GallerySaver.saveImage(savedFile.path).then((result) async {
              if (result)
                onComplete(savedFile.path);
              else
                onComplete("");
            });
          } else {
            GallerySaver.saveVideo(savedFile.path).then((result) async {
              if (result)
                onComplete(savedFile.path);
              else
                onComplete("");
            });
          }
        } else {
          onComplete("");
        }   }

Future<File> getNewFile(File file, int fileType) async {
    final Directory path = await getApplicationDocumentsDirectory();
    var fileName = UniqueKey()
            .toString()
            .replaceAll("[", "")
            .replaceAll("]", "")
            .replaceAll("#", "") +
        (fileType == 0 ? ".png" : ".mp4");

    return await file.copy('${path.path}/$fileName');
  }

您遇到錯誤 B4A3B.MP4 NOT FOUND 但它已經在路徑中

您可以看到其右下角的圖像

開始它的加載沒有問題,但過了一會兒它沒有顯示在我的應用程序中

如果您更改資產文件(創建、刪除、更改名稱...),則必須停止,使用flutter clean進行清理,然后再次運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM