从 Flutter / Dart 中的资产文件夹加载文件

iRy*_*ell 3 dart flutter

我正在使用video_playerFlutter 插件播放 .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(() {});
      });
  }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Hos*_*sar 8

猜你已经在你的 pubspec.yaml

assets:
    - assets/
Run Code Online (Sandbox Code Playgroud)

您只需将文件路径设置为字符串,如下所示:

_controller = VideoPlayerController.asset(
        'assets/name_of_your_video.mp4')
      ..initialize().then((_) {
        setState(() {});
      });
Run Code Online (Sandbox Code Playgroud)

这会起作用,希望这会有所帮助。