C#使用tagLib sharp库的自定义mp3标签
问题描述:
我正在尝试将自定义标签读取并写入MP3文件。我在这里遵循这个代码; adding custom tag using tagLib sharp libraryC#使用tagLib sharp库的自定义mp3标签
我使用的是Visual Studio 2015,并做了以下工作; 用NuGet安装taglib-sharp,在Visual Studio的包管理器控制台中运行以下命令。
PM> Install-Package taglib
然后添加了C#代码;
private void Write_Click(object sender, EventArgs e)
{
TagLib.Id3v2.Tag.DefaultVersion = 3;
TagLib.Id3v2.Tag.ForceDefaultVersion = true;
File f = File.Create(@"c:\Boy.mp3");
TagLib.Id3v2.Tag t = (TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2);
PrivateFrame p = PrivateFrame.Get(t, "CustomKey", true);
p.PrivateData = System.Text.Encoding.Unicode.GetBytes("Sample Value");
f.Save();
f.Dispose();
}
private void Read_Click(object sender, EventArgs e)
{
File fa = File.Create(@"c:\Boy.mp3");
TagLib.Id3v2.Tag ta = (TagLib.Id3v2.Tag)fa.GetTag(TagTypes.Id3v2);
PrivateFrame pa = PrivateFrame.Get(ta, "CustomKey", false);
string data = Encoding.Unicode.GetString(pa.PrivateData.Data);
MessageBox.Show(data);
}
现在,如果我单击Read_Click它会失败,这是因为我没有编写自定义标记。
如果我点击Write_Click,文件修改日期发生变化,但是我得到一个ID3v1标签以及原始ID3v2,但是如果我然后在Mp3Tag中打开该文件,我看不到自定义标签。但是,如果我点击Read_Click,它会显示值。
所以我很困惑;
- 为什么我得到的ID3v1标签
- 为什么自定义标签是不可见的Mp3Tag
- 如果我打开一个十六进制编辑器文件,我看不到“采样值”
我在做什么错?
在此先感谢您的帮助
答
答案:
1:Taglib sharp saving ONLY ID3v2
2:据我所知,Mp3tag只显示 “标准” 的ID3标签,但从来没有私人帧(https://forums.mp3tag.de/index.php?showtopic=4082 )
3:如何搜索“Sample Value”?也许它被写入编码?