MP3 Cover Art Tagging en C #
Question
Je dois baliser les fichiers MP3 avec une pochette en C # ...
Y a-t-il un moyen facile de faire cela? J'ai trouvé UltraIDLib comme un exemple et il est idéal pour le balisage ID3 régulier, mais je ne peux pas gérer les couvertures. Si quelqu'un connaissait un moyen facile de le faire, ce serait génial:)
La solution
Je fais quelque chose comme this :
private static void FixAlbumArt(FileInfo MyFile)
{
//Find the jpeg file in the directory of the Mp3 File
//We will embed this image into the ID3v2 tag
FileInfo[] fiAlbumArt = MyFile.Directory.GetFiles("*.jpg");
if (fiAlbumArt.Length < 1)
{
Console.WriteLine("No Album Art Found in {0}", MyFile.Directory.Name);
return;
}
string AlbumArtFile = fiAlbumArt[0].FullName;
//Create Mp3 Object
UltraID3 myMp3 = new UltraID3();
myMp3.Read(MyFile.FullName);
ID3FrameCollection myArtworkCollection =
myMp3.ID3v23Tag.Frames.GetFrames(MultipleInstanceFrameTypes.Picture);
if (myArtworkCollection.Count > 0)
{//Get Rid of the Bad Embedded Artwork
#region Remove All Old Artwork
for (int i = 0; i < myArtworkCollection.Count; i++)
{
ID3PictureFrame ra = (ID3PictureFrame)myArtworkCollection[0];
try
{
myMp3.ID3v23Tag.Frames.Remove(FrameTypes.Picture);
}
catch { }
}
myArtworkCollection.Clear();
//Save out our changes so that we are working with the
//most up to date file and tags
myMp3.ID3v23Tag.WriteFlag = true;
myMp3.Write();
myMp3.Read(MyFile.FullName);
#endregion Remove All Old Artwork
}
//Create a PictureFrame object, pointing it at the image on my PC
ID3PictureFrame AlbumArt =
new ID3PictureFrame(
(System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(AlbumArtFile),
PictureTypes.CoverFront, "Attached picture", TextEncodingTypes.ISO88591);
myMp3.ID3v23Tag.Frames.Add(AlbumArt);
myMp3.ID3v23Tag.WriteFlag = true;
myMp3.Write();
myMp3 = null;
}
Je suis au travail et j'ai oublié d'activer Foldershare. Je ne peux donc pas vous montrer ma version allégée dans laquelle je passe dans un objet Image, mais il y a tout ce dont vous auriez besoin pour faire le travail avec un peu de piratage. . Bonne chance.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow