2016-06-12 65 views
0

我正在嘗試將自定義標籤讀取並寫入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,它會顯示值。

所以我很困惑;

  1. 爲什麼我得到的ID3v1標籤
  2. 爲什麼自定義標籤是不可見的Mp3Tag
  3. 如果我打開一個十六進制編輯器文件,我看不到「採樣值」

我在做什麼錯?

在此先感謝您的幫助

回答