Qu'est-ce qu'un moyen rapide et facile d'afficher et d'éditer les tags ID3 (artiste, album, etc.) en utilisant C#?Afficher/modifier les données ID3 pour les fichiers MP3
Répondre
THIRDING TagLib Sharp.
TagLib.File f = TagLib.File.Create(path);
f.Tag.Album = "New Album Title";
f.Save();
TagLib Sharp prend en charge la lecture des étiquettes ID3.
J'ai commencé à utiliser le pointu TagLib basé sur la recommandation ici et cela a fonctionné très bien pour mon application (qui était en lecture seule des informations MP3). – greg7gkb
+1. Juste ce dont j'avais besoin. – David
Voir la réponse de hewins ci-dessous pour le nouvel emplacement du lien –
TagLib Sharp est très populaire.
En note, si vous voulez jeter un coup d'œil rapide et sale à le faire vous-même .. voici un extrait de C# que j'ai trouvé pour lire les informations d'une étiquette de mp3.
class MusicID3Tag
{
public byte[] TAGID = new byte[3]; // 3
public byte[] Title = new byte[30]; // 30
public byte[] Artist = new byte[30]; // 30
public byte[] Album = new byte[30]; // 30
public byte[] Year = new byte[4]; // 4
public byte[] Comment = new byte[30]; // 30
public byte[] Genre = new byte[1]; // 1
}
string filePath = @"C:\Documents and Settings\All Users\Documents\My Music\Sample Music\041105.mp3";
using (FileStream fs = File.OpenRead(filePath))
{
if (fs.Length >= 128)
{
MusicID3Tag tag = new MusicID3Tag();
fs.Seek(-128, SeekOrigin.End);
fs.Read(tag.TAGID, 0, tag.TAGID.Length);
fs.Read(tag.Title, 0, tag.Title.Length);
fs.Read(tag.Artist, 0, tag.Artist.Length);
fs.Read(tag.Album, 0, tag.Album.Length);
fs.Read(tag.Year, 0, tag.Year.Length);
fs.Read(tag.Comment, 0, tag.Comment.Length);
fs.Read(tag.Genre, 0, tag.Genre.Length);
string theTAGID = Encoding.Default.GetString(tag.TAGID);
if (theTAGID.Equals("TAG"))
{
string Title = Encoding.Default.GetString(tag.Title);
string Artist = Encoding.Default.GetString(tag.Artist);
string Album = Encoding.Default.GetString(tag.Album);
string Year = Encoding.Default.GetString(tag.Year);
string Comment = Encoding.Default.GetString(tag.Comment);
string Genre = Encoding.Default.GetString(tag.Genre);
Console.WriteLine(Title);
Console.WriteLine(Artist);
Console.WriteLine(Album);
Console.WriteLine(Year);
Console.WriteLine(Comment);
Console.WriteLine(Genre);
Console.WriteLine();
}
}
}
UltraID3Lib ...
//using HundredMilesSoftware.UltraID3Lib;
UltraID3 u = new UltraID3();
u.Read(@"C:\mp3\song.mp3");
//view
Console.WriteLine(u.Artist);
//edit
u.Artist = "New Artist";
u.Write();
+1 Ceci est la meilleure bibliothèque de loin - depuis 'UltraID3Lib supporte la plupart des soixante-quatorze types d'images spécifiées dans la ID3 v2.3 'ainsi que les balises ID3v1 au début.Belle réponse – James
+1 Ceci est beaucoup plus facile à utiliser et plus simple pour traiter les métadonnées mp3 – amrswalha
Je l'ai utilisé récemment et cela fonctionne génial et ne pas alourdir le processus Il est rapide et facile à utiliser et représente à peu près toutes les balises qui existent dans les versions 1 et 2 d'ID3 (vous pouvez utiliser les deux en même temps ou seulement l'une ou l'autre), ce qui est bien plus que ce dont j'avais besoin. comprehe Fichier d'aide nsive. Je vais recommander ceci à tout le monde. – fredsbend
J'ai enveloppé la librairie de décodeurs mp3 et l'ai rendue disponible pour les développeurs .net. Vous pouvez le trouver ici:
http://sourceforge.net/projects/mpg123net/
Inclus sont les échantillons pour convertir le fichier mp3 à PCM, et lire les tags ID3.
ID3.NET implémenté ID3v1.x et ID3v2.3 et prend en charge les opérations de lecture/écriture sur la section ID3 dans les fichiers MP3. Il y a aussi un NuGet package disponible.
documentant quelque part juste:
j'ai pu recompiler TagLib-Sharp pour le Core 2. .NET les autres options pour le faire (id3lib et plus) ne fonctionne pas pour le Core .NET.
- 1. Ruby mp3 Id3 analyse
- 2. Get MP3 ID3 méta-données et la durée du morceau en utilisant AudioStreamer
- 3. Comment cacher les fichiers gif ou mp3 dans mon projet?
- 4. Comment déplacer tous les fichiers mp3 dans un seul répertoire?
- 5. NetStream Chargement d'informations ID3 à partir d'un flux dans FMS
- 6. Toutes les bonnes recommandations pour les bibliothèques MP3/Sound pour Java?
- 7. Java pour transcoder et manipuler des fichiers mp3
- 8. Comment extraire des étiquettes d'identification à partir de fichiers MP3 dans Cocoa?
- 9. Trouver la longueur MP3 en C#
- 10. Schéma pour les fichiers .vssettings?
- 11. Les fichiers mappés en mémoire sont-ils défectueux pour les données en constante évolution?
- 12. Perforce - Soumettre uniquement les fichiers ouverts pour la branche, pas les fichiers ouverts pour l'édition
- 13. Génération de flux RSS compatibles IPod et Zune pour les fichiers MP3 hébergés sur le serveur Amazon S3
- 14. MP3 link Crawler
- 15. Comment obtenir des données audio à partir d'un MP3?
- 16. Lecture des informations MP3 en utilisant l'objectif c
- 17. Puis-je servir des fichiers MP3 avec PHP?
- 18. Modèle pour les données JSON?
- 19. Check Control.Value pour les données
- 20. Activation d'Intellisense pour les sections personnalisées dans les fichiers .config
- 21. Comment indexez-vous les fichiers pour les recherches rapides?
- 22. Conseils pour afficher les similitudes dans les fichiers
- 23. Syntaxe .hgignore pour ignorer uniquement les fichiers, pas les répertoires?
- 24. changer chmod pour les fichiers mais pas les répertoires
- 25. bash: Comment délimiter les chaînes pour trouver les fichiers
- 26. Windows API pour extraire les fichiers zip?
- 27. Aide pour les fichiers .net .ashx
- 28. os.path.exists() pour les fichiers de votre Path?
- 29. Fichiers de configuration pour les objets GAC
- 30. Rapide «Trouver dans les fichiers» pour VIM?
+1. Juste ce dont j'avais besoin. – David
Quelqu'un peut-il me dire comment définir la propriété Artist? Il y a beaucoup de propriétés similaires (FirstArtist, Artist, JointedArtists, FirstPerformer) et presque toutes sont en lecture seule ou obsolètes ... – Laserson
Un peu en retard, mais vous pouvez ajouter les artistes/artistes par ce qui suit: mp3.Tag .Performers = new string [] {"Performer 1", "Performer 2", "Performer 3"}; – nokturnal