簡體   English   中英

可以使用TagLib#將封面藝術存儲在Vorbis Comment標簽的METADATA_BLOCK_PICTURE字段中嗎?

[英]Can cover art be stored in the METADATA_BLOCK_PICTURE field of a Vorbis Comment tag using TagLib#?

可以使用TagLib#將封面藝術存儲在Ogg Vorbis文件的Vorbis Comment標簽的METADATA_BLOCK_PICTURE字段中嗎?

以下內容可行,但要求使用反射讀取Ogg Vorbis文件對象的私有屬性(“LastPageHeader”):

TagLib.Ogg.File oggFile = (TagLib.Ogg.File)TagLib.File.Create(@"C:\music.ogg");

PropertyInfo headerProp = oggFile.GetType()
                                 .GetProperty("LastPageHeader", BindingFlags.Instance | BindingFlags.NonPublic);
TagLib.Ogg.PageHeader header = (TagLib.Ogg.PageHeader)headerProp.GetValue(oggFile);

TagLib.Flac.Picture pic = new TagLib.Flac.Picture(new TagLib.Flac.Picture(@"C:\img.jpeg"));
TagLib.ByteVector picData = pic.Render();

TagLib.Ogg.GroupedComment groupedCommentTag = (TagLib.Ogg.GroupedComment)oggFile.Tag;

TagLib.Ogg.XiphComment xiphComment = groupedCommentTag.GetComment(header.StreamSerialNumber);
xiphComment.SetField("METADATA_BLOCK_PICTURE", Convert.ToBase64String(picData.Data));

oggFile.Save();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM