在 tagLib sharp 中添加自定义标签



我想将文本添加到自定义标签中,添加到MP3文件中。我尝试这样做,但我无法更改标签。

这是我现在的代码:

TagLib.File f = TagLib.File.Create(@"C:UsersspunitDesktopdenna.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 有一个不允许自定义标签的设置规范,如此处所定义。

您从另一个问题中引用的代码确实有效,您只需要包含 reader 方法来返回私有帧数据。

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

TagLib 允许设置此处定义的自定义标头。

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();

最新更新