2012-12-02 47 views
2

尝试使用C#标记库添加专辑封面,嵌入专辑封面的MP3使用标签库C#

TagLib.File trackFile = TagLib.File.Create(strLocalFile); 
    Picture picture = new Picture("Picture path"); 
    picture.Type = PictureType.FrontCover; 
    picture.MimeType = "image/jpeg"; 
    picture.Description = "Front Cover";   
    trackFile.Tag.Pictures = new IPicture[1] { picture }; 
    trackFile.Save(); 

我得到的Windows Media Player,iTunes和iPhone(仅在肖像模式)的画面。当我切换到横向模式时,会显示专辑封面,但是当滑过封面流专辑封面时会消失。

我错过了代码中的东西吗?

我使用iPhone 4S的iTunes 11,iOS 6的

+0

**更新:**这个具体问题是由于iPhone的选择性决议。当我减少图像**分辨率**时,专辑艺术在iPhone的封面流模式下正确显示。 – MusicMan

回答

4

让我举我自己:

我发现,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类型。

来源:Having trouble writing ArtWork with Taglib-sharp 2.0.4.0 in .Net

这应该既iTunes和iPod/iPad/iPhone的工作。但这只适用于MP3文件...