Flutter - 以不可见模式保存音频/视频文件,类似于 Spotify/Youtube(离线下载)

Posted

技术标签:

【中文标题】Flutter - 以不可见模式保存音频/视频文件,类似于 Spotify/Youtube(离线下载)【英文标题】:Flutter - save Audio/Video file in invisible mode similarly Spotify/Youtube (Offline Downloads) 【发布时间】:2022-01-24 05:06:50 【问题描述】:

我正在使用 Flutter 开发离线下载媒体等模块。

我有一些视频 DRM 工具的解决方案,例如 https://www.vdocipher.com/,但我想为音频实现它。

我知道的存储和隐藏媒体的最简单方法如下,但如果我打开显示隐藏文件,它将可见。

static Future<File> downloadAudioFile(String audioUrl) async 
    var hiddenFolder = '.nomedia';

    var directoryExternal = await getExternalStorageDirectory();
    final dir = Directory('$directoryExternal!.path/$hiddenFolder');
    if ((await dir.exists())) 
     else 
      dir.create();
    
    final http.Response responseData = await http.get(Uri.parse(audioUrl));
    var uint8list = responseData.bodyBytes;
    var buffer = uint8list.buffer;
    ByteData byteData = ByteData.view(buffer);

    String fileName = audioUrl.split('/').last;
    File file = await File('$dir.path/.$fileName').writeAsBytes(
        buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
    return file;
  

我想做音频和视频文件,如果有人知道,请告诉我。

【问题讨论】:

我只是想知道。如果您将这些文件存储在数据库中,例如hive、sqflite 等作为字节数据,有用还是明智? 【参考方案1】:

您好,您需要使用安全存储https://pub.dev/packages/flutter_secure_storage

【讨论】:

以上是关于Flutter - 以不可见模式保存音频/视频文件,类似于 Spotify/Youtube(离线下载)的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中将音频文件与视频文件合并

Flutter - 保存对用户可见的文件

iOS:保存在 iTunes 资料库中可见的音频文件

Dart // Flutter - 如何连接图像和音频以渲染静态视频

NSDocument 保存音频和视频文件

Android - 将视频/音频文件上传到 Firebase 存储