2015-11-02 56 views
4

試圖創建一個供個人使用的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 Player中顯示。如果有任何重要性,圖片大小爲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(); 
+0

我應該用什麼替換「D:\\ a.jpg」?我嘗試使用我想要的封面圖像的路徑,以及您輸入的內容,但都輸出錯誤。仍然不完全熟悉taglib庫 –

+0

現在嘗試一下。我用適當的路徑替換了路徑。希望它有幫助:) –

+0

另外,再次複製並粘貼整個代碼。我還做了一個小修改。 –