【问题标题】:View/edit ID3 data for MP3 files查看/编辑 MP3 文件的 ID3 数据
【发布时间】:2010-09-09 06:10:51
【问题描述】:

使用 C# 查看和编辑 ID3 标签(艺术家、专辑等)的快速简便方法是什么?

【问题讨论】:

    标签: c# .net mp3 id3


    【解决方案1】:

    UltraID3Lib...

    请注意,UltraID3Lib 不再正式可用,因此不再维护。请参阅下面的 cmets 以获取包含此库的 Github 项目的链接

    //using HundredMilesSoftware.UltraID3Lib;
    UltraID3 u = new UltraID3();
    u.Read(@"C:\mp3\song.mp3");
    //view
    Console.WriteLine(u.Artist);
    //edit
    u.Artist = "New Artist";
    u.Write();
    

    【讨论】:

    • +1 这是迄今为止最好的库 - 因为“UltraID3Lib 支持 ID3 v2.3 中指定的 74 种帧类型中的大多数”以及早期的 ID3v1 标签。最佳答案。
    • +1 这是处理 mp3 元数据更容易使用和更简单的方法
    • 我最近用过这个,效果很好,而且不会给过程带来负担。它快速且易于使用,几乎涵盖了 ID3 版本 1 和 2 中存在的所有标签(您可以同时使用两者或仅使用其中一个)。它确实比我需要的要多。它还有一个非常全面的帮助文件。我会向大家推荐这个。
    • 您好;链接无法访问。 UltraID3Lib 是否已停产?
    • 我在这个 GitHub 项目中找到了 UltraID3Lib 的一个版本。 github.com/clementboone/MyWindowsMediaPlayer 该项目包含一个 UltraID3Lib 文件夹,该文件夹是以前可用的 zip 文件的完整内容。
    【解决方案2】:

    第三次TagLib Sharp

    TagLib.File f = TagLib.File.Create(path);
    f.Tag.Album = "New Album Title";
    f.Save();
    

    【讨论】:

    • 谁能告诉我如何设置 Artist 属性?有很多相关的属性(FirstArtist、Artist、JointedArtists、FirstPerformer),几乎所有这些属性都是只读的或已弃用...
    • 有点晚了,但您可以通过以下方式添加表演者/艺术家:mp3.Tag.Performers = new string[] { "Performer 1", "Performer 2", "Performer 3" } ;
    • 很棒的图书馆。我用它来复制id3标签。
    • 这个库是否支持现代 ID3v2 标签? Simucal 的 sn-p 建议不要(除非他只是参与其中)。
    • TagLib 是 GPL。这不是一个合适的答案。
    【解决方案3】:

    ID3.NET 实现了 ID3v1.x 和 ID3v2.3 并支持对 MP3 文件中 ID3 部分的读/写操作。 还有一个NuGet package 可用。

    【讨论】:

      【解决方案4】:

      TagLib Sharp 很受欢迎。

      作为旁注,如果您想快速而肮脏地看一下自己做的事情。这是我发现的一个 C# sn-p,用于读取 mp3 的标签信息。

      class MusicID3Tag
      
      {
      
          public byte[] TAGID = new byte[3];      //  3
          public byte[] Title = new byte[30];     //  30
          public byte[] Artist = new byte[30];    //  30 
          public byte[] Album = new byte[30];     //  30 
          public byte[] Year = new byte[4];       //  4 
          public byte[] Comment = new byte[30];   //  30 
          public byte[] Genre = new byte[1];      //  1
      
      }
      
      string filePath = @"C:\Documents and Settings\All Users\Documents\My Music\Sample Music\041105.mp3";
      
              using (FileStream fs = File.OpenRead(filePath))
              {
                  if (fs.Length >= 128)
                  {
                      MusicID3Tag tag = new MusicID3Tag();
                      fs.Seek(-128, SeekOrigin.End);
                      fs.Read(tag.TAGID, 0, tag.TAGID.Length);
                      fs.Read(tag.Title, 0, tag.Title.Length);
                      fs.Read(tag.Artist, 0, tag.Artist.Length);
                      fs.Read(tag.Album, 0, tag.Album.Length);
                      fs.Read(tag.Year, 0, tag.Year.Length);
                      fs.Read(tag.Comment, 0, tag.Comment.Length);
                      fs.Read(tag.Genre, 0, tag.Genre.Length);
                      string theTAGID = Encoding.Default.GetString(tag.TAGID);
      
                      if (theTAGID.Equals("TAG"))
                      {
                          string Title = Encoding.Default.GetString(tag.Title);
                          string Artist = Encoding.Default.GetString(tag.Artist);
                          string Album = Encoding.Default.GetString(tag.Album);
                          string Year = Encoding.Default.GetString(tag.Year);
                          string Comment = Encoding.Default.GetString(tag.Comment);
                          string Genre = Encoding.Default.GetString(tag.Genre);
      
                          Console.WriteLine(Title);
                          Console.WriteLine(Artist);
                          Console.WriteLine(Album);
                          Console.WriteLine(Year);
                          Console.WriteLine(Comment);
                          Console.WriteLine(Genre);
                          Console.WriteLine();
                      }
                  }
              }
      

      【讨论】:

      【解决方案5】:

      TagLib Sharp 支持读取 ID3 标签。

      【讨论】:

      • 我根据这里的建议开始使用 TagLib sharp,它对我的​​应用程序非常有用(它是 MP3 信息的只读文件)。
      • 查看hewins对新链接位置的回答
      【解决方案6】:

      我包装了 mp3 解码器库,并将其提供给 .net 开发人员。你可以在这里找到它:

      http://sourceforge.net/projects/mpg123net/

      包括将 mp3 文件转换为 PCM 和读取 ID3 标签的示例。

      【讨论】:

        猜你喜欢
        • 2012-12-27
        • 2017-02-01
        • 1970-01-01
        • 2012-10-22
        • 2013-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多