我正在嘗試將自定義標籤讀取並寫入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
- 如果我打開一個十六進制編輯器文件,我看不到「採樣值」
我在做什麼錯?
在此先感謝您的幫助