2013-01-13 4 views
2

J'ai vu beaucoup de solutions pour éditer des informations d'artiste et d'album, etc., mais est-il un moyen d'éditer les paroles dans les données mp3 id3? Il existe des logiciels pour cela, mais je demande s'il y a un moyen de programmer ceci en C#. Disons que j'ai les paroles dans les fichiers texte pour tous mes fichiers de musique, comment puis-je les mettre dans les fichiers mp3?Editer mp3 id3 paroles données C#

Merci.

Répondre

3

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.

+0

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

+0

Mais merci beaucoup jusqu'à présent, je peux commencer avec quelque chose. – weiszam

+0

@weiszam Avez-vous mis toutes les utilisations correctes dans votre fichier? –

0

Quelques recherches rapides ont révélé cela. Peut-être que cela peut fonctionner pour vous?

http://sourceforge.net/projects/id3dotnet/

+0

Il semble après que je trouve aussi qu'ils ont déménagé à http://id3.codeplex.com/ –

+0

Je suis un peu confus avec cela, je ne sais pas comment importer des DLL et de telles choses, mais avec le autre source Je peux modifier les paroles maintenant, donc il ne reste plus qu'à télécharger les paroles facilement. Si vous connaissez un moyen facile .. :) – weiszam

Questions connexes