Il n'y a pas de solution intégrée interne pour cela, vous devrez utiliser une bibliothèque externe comme ceux-ci:
http://sourceforge.net/projects/csid3lib/
http://id3.codeplex.com/
Ce dernier ressemble plus complet et riche en fonctionnalités.
Par exemple, pour obtenir les paroles d'un fichier:
string[] mp3Files = Directory.GetFiles(_mp3Directory, "*.mp3");
InfoProvider chartLyricsProvider = new ChartLyricsInfoProvider();
InfoProvider lyrDbLyricsProvider = new LyrDbInfoProvider();
foreach (string mp3File in mp3Files)
{
Console.Write(Path.GetFileNameWithoutExtension(mp3File));
Id3Tag tag;
using (var mp3 = new Mp3File(mp3File))
tag = mp3.GetTag(Id3TagFamily.FileStartTag);
if (tag == null)
continue;
if (!tag.Artists.IsAssigned || !tag.Title.IsAssigned)
{
Console.WriteLine();
continue;
}
Console.WriteLine(" ({0} - {1})", tag.Artists.Values[0], tag.Title.Value);
Id3Tag[] lyricsTags = GetLyrics(tag, chartLyricsProvider, lyrDbLyricsProvider);
if (lyricsTags == null || lyricsTags.Length == 0)
continue;
string outputFilename = string.Format("{0} - {1}.txt", tag.Artists.Values[0], tag.Title.Value);
string outputFile = Path.Combine(_outputDirectory, outputFilename);
using (var lyricsWriter = new StreamWriter(outputFile, false))
lyricsWriter.Write(lyricsTags[0].Lyrics[0].Lyrics);
Console.WriteLine(" {0}", outputFilename);
}
Je suis sûr que après avoir regardé à travers les documents de ces deux bibliothèques, vous pouvez trouver comment assigner les paroles.
Okay j'ai un peu compris ce que le premier fait. Maintenant, si j'ai les paroles dans le texte, je pense que je peux l'enregistrer dans le fichier mp3. Mais ce que je ne comprends pas, c'est comment obtenir les paroles de cette chose ChartLyrics. Pour moi, il ne reconnaît pas InfoProvider et bien d'autres choses. – weiszam
Mais merci beaucoup jusqu'à présent, je peux commencer avec quelque chose. – weiszam
@weiszam Avez-vous mis toutes les utilisations correctes dans votre fichier? –