Обложка альбома не кодируется
Попытка создать mp3-кодировщик для личного использования. Перепробовал все решения здесь на StackO, но ни одно из них не сработало.
Вот что у меня есть:
TagLib.File tagFile = TagLib.File.Create("C:\\Users\\Dom\\Desktop\\song.mp3");
TagLib.Id3v2.AttachedPictureFrame pic = new TagLib.Id3v2.AttachedPictureFrame();
pic.TextEncoding = TagLib.StringType.Latin1;
pic.MimeType = System.Net.Mime.MediaTypeNames.Image.Jpeg;
pic.Type = TagLib.PictureType.FrontCover;
pic.Data = TagLib.ByteVector.FromPath("C:\\Users\\Dom\\Pictures\\picture.png");
tagFile.Tag.Pictures = new TagLib.IPicture[1] { pic };
tagFile.Tag.Album = "Album 1";
tagFile.Tag.Year = 1990;
tagFile.Save();
В свойствах тега альбома и года отображается нормально, и программа не вылетает и не выдает никаких ошибок. Изображение не отображается как значок файла или в проигрывателе Windows Media. Размер изображения составляет 300x300 пикселей, если это имеет какое-либо значение.
1 ответ
Решение
Возможно, причина в некотором конфликте с существующими тегами ID3v2. Исправьте это так:
TagLib.File tagFile = TagLib.File.Create("C:\\Users\\Dom\\Desktop\\song.mp3"); Tag t = tagFile.GetTag(TagTypes.Id3v2);
tagFile.RemoveTags(TagTypes.Id3v2); Tag tags = tagFile.GetTag(TagTypes.Id3v2);
tagFile.GetTag(TagTypes.Id3v2, true); tagFile.Save();
tagFile = TagLib.File.Create("C:\\Users\\Dom\\Desktop\\song.mp3"); tags = t;
tagFile.GetTag(TagTypes.Id3v2).Pictures = new IPicture[] { new Picture("C:\\Users\\Dom\\Pictures\\picture.png") { MimeType = "image/png", Type = PictureType.FrontCover } };
tagFile.Tag.Album = "Album 1";
tagFile.GetTag(TagTypes.Id3v2).Track = 0;
tagFile.Tag.Year = 1990;
tagFile.Save();