在MP3文件中写入图稿时遇到问题。我可以使用Taglib-sharp读取和显示MP3文件中的所有图片,但是当需要在MP3标签中插入超过1张图片(例如:FrontCover和BackCover)时,我在使用that.If时遇到了问题这只是一幅图片……我可以做到这一点谁能扔给我骨头,并告诉我怎么做??(vb.net当然很好,但C#也可以做到这一点)。
还有一个请求..。并删除mp3标记内的图像??有没有人能给我举个例子,告诉我怎么做。
谢谢你的帮忙
发布于 2011-10-12 05:47:38
您是如何插入和删除图像的?你能发布一些代码吗?
所有标记都使用IPicture接口和Tag.Pictures的getter和setter。修改Tag.Pictures数组的内容不会对文件产生任何影响,因此修改现有列表涉及到获取当前值、对其进行操作,然后将其重新设置。简单地设置或清除图片会更容易。
您可以使用以下命令将文件设置为具有单个图像:
IPicture pictures = new IPicture[1];
pictures[0] = new Picture("path/to/picture.jpg");
file.Tag.Pictures = pictures;您可以使用以下内容删除标签中的所有图像:
file.Tag.Pictures = new IPicture[0];
file.Save();操作或更复杂,但遵循相同的思路。如果Tag.Pictures是一个IEnumerable而不是一个数组,那会更好,但现在已经完成了。
下面是一个从命令行参数设置图像的示例程序:https://github.com/mono/taglib-sharp/blob/master/examples/SetPictures.cs
发布于 2012-12-04 01:47:58
我遇到了和鲍比·巴姆拉一样的问题。我发现iTunes讨厌UTF-16,这就是问题所在。
targetMp3File = TagLib.File.Create(...);
// define picture
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(...);
// save picture to file
targetMp3File.Tag.Pictures = new TagLib.IPicture[1] { pic };
targetMp3File.Save();所以从本质上讲,整个事情都在pic.TextEncoding行中。另外,我通过.NET常量指定了Mime类型。
因此,不需要使用TagLib.PictureType.Other或使用描述的变通方法。我的解决方案唯一的缺点是它只能正确地处理MP3文件。
发布于 2012-02-21 15:01:26
我在我的MP3标签应用程序中使用了以下标记库-sharp代码。在没有设置'mime‘和'type’的情况下,我无法让图片在ITunes中显示,随后也无法在我的Ipod上显示,即使Windows/WMP可以正确地显示它。
TagLib.File targetFileMp3Tag = TagLib.File.Create(...);
Picture picture = new Picture();
picture.Type = PictureType.Other;
picture.MimeType = "image/jpeg";
picture.Description = "Cover";
picture.Data = ByteVector.FromStream(...);
targetFileMp3Tag.Tag.Pictures = new IPicture[1] { picture };
targetFileMp3Tag.save()hth
https://stackoverflow.com/questions/7237346
复制相似问题