Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 1.75 KB

README.md

File metadata and controls

62 lines (50 loc) · 1.75 KB

mp3editor

A Flutter plugin for reading and writing mp3 file tags.

Usage

First get the filepath from an mp3 file saved on the device. If you have the mp3 file in your flutter assets, you can save it to the device like so:

import 'package:path_provider/path_provider.dart';
String filepath;

writeToFile(ByteData data, String path) {
  final buffer = data.buffer;
  return new File(path).writeAsBytes(
    buffer.asUint8List(data.offsetInBytes, data.lengthInBytes)
  );
}

Future<void> getFilepath() async {
    String dir = (await getApplicationDocumentsDirectory()).path;
    if (!(File(dir + "/track.mp3").existsSync())) {
      var bytes = await rootBundle.load("mp3samples/track.mp3");
      await writeToFile(bytes, dir + "/track.mp3");
    }
    filepath = dir + "/track.mp3";
}

To read specific tags:

Future<String> title = Mp3editor.getTitle(filepath);
Future<String> artist = Mp3editor.getArtist(filepath);
Future<String> trackNumber = Mp3editor.getTrackNumber(filepath);
Future<String> album = Mp3editor.getAlbum(filepath);
Future<String> year = Mp3editor.getYear(filepath);
Future<String> genre = Mp3editor.getGenre(filepath);
Future<String> comment = Mp3editor.getComment(filepath);

Method will return null if tag is empty.

To write tags, you will need overwrite all the existing tags in the file:

Mp3editor.setID3v1Tag(
  filepath: filepath,
  title: 'Title',
  artist: 'Artist',
  album: 'Album',
  year: '2019',
  genre: 52,
  comment: 'Comment'
);

Be careful with the 'genre' parameter, you need to specify an ID3v1 genre number, see this for more.

Checkout the example for further details.