Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.2.1

audiotagger

Bibliothek zum Lesen und Schreiben von ID3-Tags in MP3-Dateien. Sie können die Daten als Map-Objekt oder Tag-Objekt erhalten.

30-Tage-Downloads
220
Likes
47
Pub-Punkte
70

Paket installieren

flutter pub add audiotagger

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Audiotagger ist ein Flutter/Dart-Paket, das das Lesen und Schreiben von ID3-Tags in MP3-Dateien ermöglicht. Es bietet Zugriff auf Metadaten wie Titel, Künstler, Album usw. und gibt Daten entweder als Map-Objekt oder als strukturiertes Tag-Objekt zurück. Ideal für Audio-Verwaltungsanwendungen unterstützt es grundlegende Tag-Manipulationen ohne externe Abhängigkeiten. Die Bibliothek ist leichtgewichtig und auf Kernfunktionen fokussiert, was sie für Entwickler geeignet macht, die eine einfache ID3-Tag-Verwaltung in ihren Musikanwendungen benötigen.

Anwendungsfälle

  • MP3-Metadaten bearbeiten
  • Song-Informationen lesen
  • Stapelaktualisierungen von Tags
  • Musik-App-Entwicklung
  • Metadatenextraktion aus Audiodateien

Hauptmerkmale

  • ID3-Tags lesen und schreiben
  • Unterstützt Karten- und Tag-Objekt-Ausgabe
  • Leichtgewichtiges und einfaches API
  • Keine externen Abhängigkeiten
  • Plattformübergreifende Kompatibilität

Geeignet für

  • Flutter-Entwickler, die mit Audio-Dateien arbeiten
  • Apps, die eine MP3-Metadatenverwaltung benötigen
  • Einfache Tag-Editierwerkzeuge
  • Audio-Bibliothek-Integrationen
  • Desktop- und mobile Audio-Anwendungen

Hinweise

  • Beschränkt auf ID3-Tags (keine anderen Formate)
  • Keine Unterstützung für erweiterte Tag-Typen
  • plattformspezifischer Dateizugriff erforderlich
  • Behandelt keine anderen Audioformate
  • Benötigt manuelle Fehlerbehandlung für Dateibetrieb

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

audiotagger

build status pub

This library allow you to read and write ID3 tags to MP3 files.
Based on JAudiotagger library.

Library actually works only on Android.

Add dependency

dependencies:
  audiotagger: ^2.2.1

Audiotagger need access to read and write storage.
To do this you can use Permission Handler library.

Table of contents

Basic usage

Initialize a new instance of the tagger;

final tagger = new Audiotagger();

Reading operations

Read tags as Tag object

Obtain ID3 tags of the file as a Tag object.

void getTags() async {
    final String filePath = "/storage/emulated/0/file.mp3";
    final Tag tag = await tagger.readTags(
        path: filePath
    );
}

This method does not read the artwork of the song. To do this, use the readArtwork method.

The Tag object has this schema: Tag schema.

Read tags as map

Obtain ID3 tags of the file as a Map.

void getTagsAsMap() async {
    final String filePath = "/storage/emulated/0/file.mp3";
    final Map map = await tagger.readTagsAsMap(
        path: filePath
    );
}

This method does not read the artwork of the song. To do this, use the readArtwork method.

The map has this schema: Map of Tag schema.

Read artwork

Obtain the artwork of the song as a Uint8List.

void getArtwork() async {
    final String filePath = "/storage/emulated/0/file.mp3";
    final Uint8List bytes = await tagger.readArtwork(
        path: filePath
    );
}
Read audio file as AudioFile object

Obtain informations about the MP3 file as a Tag object.

void getAudioFile() async {
    final String filePath = "/storage/emulated/0/file.mp3";
    final AudioFile audioFile = await tagger.readAudioFile(
        path: filePath
    );
}

The AudioFile object has this schema: AudioFile schema.

Read audio file as map

Obtain informations about the MP3 file as a Map.

void getAudioFileAsMap() async {
    final String filePath = "/storage/emulated/0/file.mp3";
    final Map map = await tagger.readAudioFileAsMap(
        path: filePath
    );
}

The map has this schema: Map of AudioFile schema.

Writing operations

Write tags from map

You can write the ID3 tags from a Map.
To reset a field, pass an empty string ("").
If the value is null, the field will be ignored and it will not be written.

void setTagsFromMap() async {
    final path = "storage/emulated/0/Music/test.mp3";
    final tags = <String, String>{
        "title": "Title of the song",
        "artist": "A fake artist",
        "album": "",    //This field will be reset
        "genre": null,  //This field will not be written
    };

    final result = await tagger.writeTagsFromMap(
        path: path,
        tags: tags
    );
}

The map has this schema: Map of Tag schema.

Write tags from Tag object

You can write the ID3 tags from a Tag object.
To reset a field, pass an empty string ("").
If the value is null, the field will be ignored and it will not be written.

void setTags() async {
    final path = "storage/emulated/0/Music/test.mp3";
    final tag = Tag(
        title: "Title of the song",
        artist: "A fake artist",
        album: "",    //This field will be reset
        genre: null,  //This field will not be written
    );

    final result = await tagger.writeTags(
        path: path,
        tag: tag,
    );
}

The Tag object has this schema: Tag schema.

Write single tag field

You can write a single tag field by specifying the field name.
To reset the field, pass an empty string ("").
If the value is null, the field will be ignored and it will not be written. \

void setTags() async {
    final path = "storage/emulated/0/Music/test.mp3";

    final result = await tagger.writeTag(
        path: path,
        tagField: "title",
        value: "Title of the song"
    );
}

Refer to Map of Tag schema for fields name.

Models

These are the schemes of the Map and classes asked and returned by Audiotagger.

Tag class
String? title;
String? artist;
String? genre;
String? trackNumber;
String? trackTotal;
String? discNumber;
String? discTotal;
String? lyrics;
String? comment;
String? album;
String? albumArtist;
String? year;
String? artwork; // It represents the file path of the song artwork.
Map of Tag
<String, String>{
    "title": value,
    "artist": value,
    "genre": value,
    "trackNumber": value,
    "trackTotal": value,
    "discNumber": value,
    "discTotal": value,
    "lyrics": value,
    "comment": value,
    "album": value,
    "albumArtist": value,
    "year": value,
    "artwork": value, // Null if obtained from readTags or readTagsAsMap
};
AudioFile class
int? length;
int? bitRate;
String? channels;
String? encodingType;
String? format;
int? sampleRate;
bool? isVariableBitRate;
Map of AudioFile
<String, dynamic?>{
    "length": length,
    "bitRate": bitRate,
    "channels": channels,
    "encodingType": encodingType,
    "format": format,
    "sampleRate": sampleRate,
    "isVariableBitRate": isVariableBitRate,
};

Copyright and license

This library is developed and maintained by Nicolò Rebaioli
:globe_with_meridians: My website
:mailbox: [niko.reba@gmail.com](mailto:niko.reba@gmail.com)

Released under MIT license

Copyright 2021 Nicolò Rebaioli

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden