【问题标题】:How can I fetch the metadata of audio files in flutter?如何在颤动中获取音频文件的元数据?
【发布时间】:2021-01-13 21:54:47
【问题描述】:

音频文件的元数据是音频相关应用中最重要的东西。在元数据的帮助下,我们可以使用标题、作者姓名、艺术家姓名、专辑名称、封面图片和其他详细信息,以便我们可以在我们的应用程序中使用这些详细信息来列出音乐项目,并能够相应地创建不同的组或分区。例如,如果我们创建音乐应用程序,那么如果 6 首歌曲来自想象龙,另外 6 首歌曲来自一个共和国,还有一些来自想象龙但来自不同专辑的歌曲,那么我们可以根据元数据的某些标准对它们进行分类。

在 assets_audio_player 中,我们可以手动添加元数据,但无法从文件中获取现有元数据。据我了解,通过探索 pub.dev 中的其他音频包,大多数其他包都不支持。

【问题讨论】:

    标签: flutter dart flutter-layout flutter-dependencies dart-pub


    【解决方案1】:

    找到这个可能有帮助的包:https://pub.dev/packages/id3/(假设您使用的是 MP3 文件;您没有提及格式)

    编辑:这是另一个https://pub.dev/packages/dart_tags

    【讨论】:

      【解决方案2】:

      这是一个用于 Flutter 的包,用于读取各种音频文件甚至是 URL 的元数据。

      https://github.com/alexmercerind/flutter_media_metadata

      您可以按如下方式使用它:

      示例

      import 'package:flutter_media_metadata/flutter_media_metadata.dart';
      
      var retriever = new MetadataRetriever();
      await retriever.setFile(new File('/storage/emulated/0/Music/music.aac'));
      Metadata metadata = await retriever.metadata;
      
      metadata.trackName;
      metadata.trackArtistNames;
      metadata.albumName;
      metadata.albumArtistName;
      metadata.trackNumber;
      metadata.albumLength;
      metadata.year;
      metadata.genre;
      metadata.authorName;
      metadata.writerName;
      metadata.discNumber;
      metadata.mimeType;
      metadata.trackDuration;
      metadata.bitrate;
      
      retriever.albumArt;
      
      await retriever.setUri(new Uri.https('www.example.com', '/audio.MP3', {}));
      
      Map<String, dynamic> map = await metadata.toMap();
      

      演示

      @FloatingRock 提到的包是用 Dart 本身编写的,因此速度很慢。并且仅支持 MP3 标签(即仅 ID3v1/ID3v2)。

      【讨论】:

      • @MalekTubaisaht 什么不起作用?不工作不是原因。
      • 它没有一天@Hitesh
      猜你喜欢
      • 2018-11-22
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      相关资源
      最近更新 更多