音频文件的元数据是与音频相关的应用程序中最重要的事情。借助元数据,我们可以使用标题,作者姓名,艺术家姓名,专辑名称,封面图像和其他详细信息,因此我们可以在应用程序中使用这些详细信息列出音乐项目,并能够相应地创建不同的组或分区。例如,如果我们创建音乐应用程序,则如果6首歌曲是来自《幻想龙》,另外6首歌曲是来自一个共和国,还有一些(如果有些《幻想龙》的歌曲是来自不同专辑),那么我们可以根据某些元数据标准对它们进行分类。< / p>
在assets_audio_player中,我们可以手动添加元数据,但是无法从文件中获取现有元数据。据我了解,通过探索pub.dev中的其他音频包,大多数其他包都不支持。
答案 0 :(得分:1)
找到了可能有助于以下目的的软件包:https://pub.dev/packages/id3/(假设您正在使用MP3文件;您没有提及格式)
答案 1 :(得分:1)
这是一个 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)。