2012-12-02 69 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文件...