【问题标题】:How to download video (mp4) file in Flutter?如何在 Flutter 中下载视频 (mp4) 文件?
【发布时间】:2020-04-14 16:37:29
【问题描述】:

我将视频上传到 Firebase 存储,并希望将其下载并保存到本地存储。我使用gallery_saver 插件从网络下载视频,但它给了我例外。

 GallerySaver.saveVideo(url, albumName: "ABC/Videos");

例外。

E/flutter ( 9221): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Invalid argument(s): File on path is not a video.
E/flutter ( 9221): #0      GallerySaver.saveVideo (package:gallery_saver/gallery_saver.dart:27:7)
E/flutter ( 9221): #1      _OptionSelectionState.saveToLocale (package:pixz_app/ui/widgets/options_view.dart:618:22)
E/flutter ( 9221): <asynchronous suspension>

是否有任何其他插件或方法可以从 firebase video(mp4) url 下载视频。

Video Link

【问题讨论】:

  • 请提供您尝试使用的网址
  • 请检查我添加的视频网址

标签: android ios flutter dart


【解决方案1】:

一种方法是使用 URL Launcher 打开链接并让设备浏览器处理下载。

将以下内容添加到您的 pubspec

url_launcher: ^5.4.2

导入

import 'package:url_launcher/url_launcher.dart';

_launchURL(string url) async {

  if (await canLaunch(url)) {
    await launch(url);
  } else {
    throw 'Could not launch $url';
  }
}

然后只需在您的 url 上调用该方法

RaisedButton(
              child: Text("Landscape Left"),
              onPressed: () async {
              await _launchURL('https://firebasestorage.googleapis.com/v0/b/pixz-92afa.appspot.com/o/PostVideos%2F0xb159d1586689312896%2F0xb159d15866893128961586846213136_video?alt=media&token=af6b076b-405e-4763-abb4-69a83f92d15b'); // your URL 
            });

参考文献

  1. url_launcher

【讨论】:

    【解决方案2】:

    Flutter gallery saver 仅适用于直接资源 URL。所以你最好使用Firebase Hosting/AWS S3/其他存储服务。

    【讨论】:

      【解决方案3】:

      对于下载文件,我推荐使用 Dio 包。作为文档 Dio 是:

      一个强大的 Dart Http 客户端,支持拦截器、全局 配置,FormData,请求取消,文件下载, 超时等

      Dio 会在下载后保存文件。

      这是一个用 Dio 下载文件的简单代码:

      final response = await dio.download(url, savePath);
      

      对于更复杂的示例,请查看此链接;

      1. download file
      2. download with trunks

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-20
        • 1970-01-01
        • 1970-01-01
        • 2015-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多