从Flutter / Dart中的Assets文件夹加载文件

时间:2019-05-07 02:43:25

标签: dart flutter

我正在使用video_player插件让Flutter播放.mp4文件。在示例代码中,有一个使用.network()方法播放文件的演示,但是在源代码中,我看到了一种用于运行本地内容的.file()方法。

我已经将自己的资产目录添加到pubspec.yaml文件中,但是在iOS上,我没有看到一种简单的方法来获取视频的file://路径并将其传递到视频播放器中。

看起来这是通过assetBundle构造函数完成的,但是我不太确定如何对代码进行措辞。凭直觉,感觉应该像这样:

  void initState() async {
    super.initState();
    final video = File('assets/video.mp4'); 

    _controller = VideoPlayerController.file(video)
      ..initialize().then((_) {
        setState(() {});
      });
  }

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

猜测您已在pubspec.yaml

中添加了以下内容
assets:
    - assets/

您只需要将文件路径设置为String即可,如下所示:

_controller = VideoPlayerController.asset(
        'assets/name_of_your_video.mp4')
      ..initialize().then((_) {
        setState(() {});
      });

这将起作用,希望有帮助。