在 tagLib sharp 中添加自定义标签

Add custom tag in tagLib sharp

我想将文本添加到自定义标签,添加到 MP3 文件。我试过 ,但无法更改标签。

这是我现在的代码:

TagLib.File f = TagLib.File.Create(@"C:\Users\spunit\Desktop\denna.mp3");
TagLib.Id3v2.Tag t = (TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2);
PrivateFrame p = PrivateFrame.Get(t, "albumtype", true);
p.PrivateData = System.Text.Encoding.Unicode.GetBytes("TAG CHANGED");
f.Tag.Album = "test";
f.Save();

我得到要更改的专辑标签,但不是专辑类型标签。我错过了什么吗?

不幸的是,Id3v2 有一套规范,不允许自定义标签,定义为 here

您从 引用的代码确实有效,您只需要将 reader 方法包含到 return 私有帧数据中。

另请参阅 Unix Stack Exchange 上的 this question,其中有人遇到了同样的问题 - 另一种解决方案可能是使用 UserDefinedText 标记。

TagLib 允许设置自定义 headers 定义为 here

var tfile = TagLib.File.Create(@"C:\My song.flac");
var custom = (TagLib.Ogg.XiphComment) tfile.GetTag(TagLib.TagTypes.Xiph);

// Read
string [] myfields = custom.GetField("MY_TAG");
Console.WriteLine("First MY_TAG entry: {0}", myfields[0]);

// Write
custom.SetField("MY_TAG", new string[] { "value1", "value2" });
custom.RemoveField("OTHER_FIELD");
rgFile.Save();