editAudioMetadata method

Future<void> editAudioMetadata({
  1. required String inputPath,
  2. required String outputPath,
  3. required AudioMetadata metadata,
  4. bool isOverride = true,
})

Audio Metadata Edit

Implementation

Future<void> editAudioMetadata({
  required String inputPath,
  required String outputPath,
  required AudioMetadata metadata,
  bool isOverride = true,
}) async {
  final outFile = File(outputPath);
  if (outFile.existsSync() && isOverride) {
    await outFile.delete();
  }

  final args = <String>['-i', inputPath];

  if (metadata.title != null) {
    args.addAll(['-metadata', 'title=${metadata.title}']);
  }
  if (metadata.artist != null) {
    args.addAll(['-metadata', 'artist=${metadata.artist}']);
  }
  if (metadata.album != null) {
    args.addAll(['-metadata', 'album=${metadata.album}']);
  }
  if (metadata.genre != null) {
    args.addAll(['-metadata', 'genre=${metadata.genre}']);
  }
  if (metadata.date != null) {
    args.addAll(['-metadata', 'date=${metadata.date}']);
  }
  if (metadata.comment != null) {
    args.addAll(['-metadata', 'comment=${metadata.comment}']);
  }

  // args.addAll(['-c', 'copy', outputPath]);
  args.addAll(['-id3v2_version', '3', outputPath]);

  await ffmpegRun(arguments: args);
}