C#自定义mp3标签与tagLib sharp库

时间:2016-06-12 13:40:39

标签: taglib-sharp

我正在尝试读取自定义标签并将其写入MP3文件。我在这里遵循这个代码; adding custom tag using tagLib sharp library

我正在使用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,它会显示值。

所以我很困惑;

  1. 为什么我要获得ID3v1标签
  2. 为什么自定义标签在Mp3Tag中不可见
  3. 如果我在十六进制编辑器中打开文件,我看不到“样本值”
  4. 我做错了什么?

    提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

数目:

1:Taglib sharp saving ONLY ID3v2

2:据我所知,Mp3tag只显示“标准”ID3标签,但从不显示私有框架(https://forums.mp3tag.de/index.php?showtopic=4082

3:你如何搜索“样本价值”?也许它是用编码编写的?