【问题标题】:How to save a _flutterFFmpeg gif in firebase storage?如何在 Firebase 存储中保存 _flutterFFmpeg gif?
【发布时间】:2022-01-13 11:57:33
【问题描述】:

编辑: 在@Frank van Puffelen 的帮助下进行了一些更改 我收到一个新错误,请参阅下面的更新代码和更新错误

大家好,我正在尝试保存我使用 flutter_ffmpeg 创建的 gif:^0.4.2 使用此代码,我试图从当前为 widget.videopathasstring 的用户创建一个挑选视频的 gif 这是挑选视频的路径。

 Directory gifDirectory;
  String gifOutputFile;
  getpreviewvideo() async {
    String currentvideo = widget.videopathasstring;
    await getApplicationDocumentsDirectory().then((directory) {
      print("13");
      gifDirectory = Directory(directory.path + '/gif');
      print("14");
      gifDirectory.exists().then((exists) async {
        print("0");
        if (!exists) {
          print("1");
          await gifDirectory.create();
        }
      }).then((value) => {
            print("3"),
            gifOutputFile = gifDirectory.path +
                '/' +
                DateTime.now().millisecondsSinceEpoch.toString() +
                '.gif',
          });
    });
    print("4");
    var arguments = [
      '-i',
      currentvideo,
      '-t',
      '2.5',
      '-ss',
      '2.0',
      '-f',
      'gif',
      gifOutputFile,
    ];
    _flutterFFmpeg.executeWithArguments(arguments).then((rc) {
      print("FFmpeg process exited with rc $rc");
    });

    return File(gifOutputFile);
  }

问题是我得到这个错误

GTMSessionFetcher invoking fetch callbacks, data {length = 0, bytes = 0x}, error (null)
2
GTMSessionFetcher invoking fetch callbacks, data {length = 613, bytes = 0x7b0a2020 226e616d 65223a20 22616c6c ... 36316263 34220a7d }, error (null)
flutter: 13
flutter: 14
flutter: 4
flutter: Invalid argument(s) (path): Must not be null
flutter: 0
-[NSNull length]: unrecognized selector sent to instance 0x1dc5f0558
flutter: 3
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1dc5f0558'
*** First throw call stack:
(0x181e8904c 0x19a4fdf54 0x181f66014 0x181e1e474 0x181e1d5b0 0x181e15410 0x181e0d0a0 0x100e3c4b8 0x100e3b324 0x100e3bb24 0x10065528c 0x181af9914 0x181afb660 0x181afe788 0x181b0cdd0 0x181b0d5f8 0x1f212a0b8 0x1f2129e94)
libc++abi: terminating with uncaught exception of type NSException
* thread #65, queue = 'com.apple.root.default-qos', stop reason = signal SIGABRT
    frame #0: 0x00000001b8cd0964 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`__pthread_kill:
->  0x1b8cd0964 <+8>:  b.lo   0x1b8cd0984               ; <+40>
    0x1b8cd0968 <+12>: pacibsp
    0x1b8cd096c <+16>: stp    x29, x30, [sp, #-0x10]!
    0x1b8cd0970 <+20>: mov    x29, sp
Target 0: (Runner) stopped.
Lost connection to device.
Exited (sigterm)

希望任何人都可以提供帮助

【问题讨论】:

    标签: firebase flutter firebase-storage gif


    【解决方案1】:

    您似乎没有将文件上传到 Cloud Storage,只有在您致电 putFile 时才会发生这种情况。

    查看uploading files 上的 FlutterFire 文档,了解如何使用 putFile 的示例

    【讨论】:

    • 是的,我知道,但问题是。这个包需要一个直接在参数中的上传目录,在我的例子中是 gifOutputfile。这是firebase存储中的一个目录。但它没有得到保存。那我能做什么?通常应该创建第一个参数,然后应该调用执行函数,然后我应该让文件上传它并获取 downloadurl 。但是我认为这个包不像我想的那样工作。所以我不明白如何保存这个文件。
    • 我更新了我的代码,新的错误请查看。
    • 这看起来像是一个新问题,所以我不建议在这里关闭并提出一个新问题。堆栈跟踪很难解析,但在某处似乎有一个空指针异常:“不得为空”。
    猜你喜欢
    • 2017-08-10
    • 2019-10-04
    • 2020-01-22
    • 2020-09-15
    • 2018-07-28
    • 2010-12-23
    • 2021-08-29
    • 2021-03-14
    • 2021-05-12
    相关资源
    最近更新 更多