【问题标题】:TagLib sharp not editing artistTagLib 锐利不编辑艺术家
【发布时间】:2013-06-21 22:38:52
【问题描述】:

我正在尝试将新的艺术家和标题 id3 标签保存到曲目中。从轨道加载标签运行良好,轨道的编辑标题也运行良好。但是当我尝试编辑 performer (artist) 时,它并没有改变任何东西。这是代码

public void renameID3(string artist,string title)
{ 
   using (TagLib.File f = TagLib.File.Create(FInfo.FullName))
        {
            f.Tag.Artists[0] = artist; //Both of them are not ...
            f.Tag.Performers[0] = artist; //working


            f.Tag.Title = title; //This works fine
            f.Save();
        }
  }

另外,我查看了 TagLib 类的 FirstPerformerFirstPerformer 成员的定义,但它们没有任何设置方法。 有谁知道如何解决这个问题?

【问题讨论】:

    标签: c# mp3 taglib id3 taglib-sharp


    【解决方案1】:

    遇到了同样的问题。发现首先清除Performers 使其按预期工作:

    using(TagLib.File tlFile = TagLib.File.Create(newFileName)){
        //tlFile.Tag.Performers = new []{translateDict[author]}; //doesn't work
        tlFile.Tag.Performers = null; //clearing out performers
        tlFile.Tag.Performers = new []{translateDict[author]}; //works now
        tlFile.Save();
    }
    

    【讨论】:

    • 您不需要=null 步骤。问题是 Performers 等人返回 new 数组,因此编辑它不会更改底层数据结构。它应该真的返回一个 IEnumerable 但我年轻而鲁莽。
    • @BrianNickel 你能看看问题吗:stackoverflow.com/questions/35414734/…
    【解决方案2】:
    TagLib.File f = TagLib.File.Create(yourFile);
    f.Tag.AlbumArtists = new string[] { "Artist 1", "Artist 2", ... };
    

    【讨论】:

      【解决方案3】:

      这对我有用:

      TagLib.File file = TagLib.File.Create (fname);
      file.Tag.Performers = new String[1] { artist };
      file.Save();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-15
        • 1970-01-01
        • 2013-01-24
        • 1970-01-01
        相关资源
        最近更新 更多