c# - taglib-sharp 中是否有与 Label/Publisher 等效的字段?

标签 c# .net id3 taglib-sharp

我正在尝试使用 Taglib-sharp 更新标签/发布者字段,但我无法使用对象浏览器在其对象层次结构中的任何位置看到它。

我已经通过 google 和文档进行了搜索,看起来这是一个不适合的领域。

在我寻找可以编辑这些字段的替代方案(任何人都可以提出任何建议吗?)之前,我想我会做最后一次尝试并在 StackOverflow 社区中询问熟悉 TagLib-sharp 的人,他们有更明智的意见?

提前致谢

弗朗西斯

更新:我调查了其他库,例如 mpg123 和 UltraID3Lib,但它们似乎具有相同的限制。

最佳答案

嗯,Daniel Fuchs 的回答对我不起作用。但是,这是一个开始。

在TagLib-sharp代码中添加字段的步骤是:

  1. 下载Source

  2. 打开文件 TagLib/Tag.cs​​ 并插入以下代码(我将其插入到 PerformersSort 的第 250 行下方):

    public virtual string Publisher
    {
        get { return ""; }
        set { }
    }
    
  3. 打开文件 TagLib/Id3v2/Tag.cs​​ 并插入以下代码(我将其插入到 PerformersSort 的第 1292 行下方):

    public override string Publisher
    {
        get { return GetTextAsString(FrameType.TPUB); }
        set { SetTextFrame(FrameType.TPUB, value); }
    }
    
  4. 打开文件 TagLib/Id3v2/FrameTypes.cs 并插入以下代码(我将其插入到 TPOS 第 71 行下方):

    public static readonly ReadOnlyByteVector TPUB = "TPUB";
    
  5. “啊哈”来了。打开文件 TagLib/CombinedTag.cs​​ 并插入以下代码(我将其插入到 PerformersSort 的第 318 行下方):

    public override string Publisher
    {
        get
        {
            foreach (Tag tag in tags)
            {
                if (tag == null)
                    continue;
    
                string value = tag.Publisher;
    
                if (value != null)
                    return value;
            }
    
            return null;
        }
    
        set
        {
            foreach (Tag tag in tags)
                if (tag != null)
                    tag.Publisher = value;
        }
    }
    
  6. 最后,编译代码。

重要:我在编译代码时也遇到了问题。您必须下载 SharpZipLib dll (.NET 2.0) 并将此 dll 包含在 taglib 项目中。另外,我需要安装我用 Nuget 制作的 NUnit。最后,我在测试代码中注释了 GDK 库及其所有错误,因为在生产中不会使用它。

关于c# - taglib-sharp 中是否有与 Label/Publisher 等效的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361102/

相关文章:

c# - 我在 Entity 框架中找不到带有 lambda 表达式的 "Include"方法?

.net - Azure 批处理池下的relativemountpath

.net - 使用 ILMerge 合并 .NET 3.5 和 .NET 2.0 程序集时出现问题

构建应用程序时出现 .NET Blazor 错误 MSB3073 但以及如何修复它,删除 Blazor.MonoRuntime.targets 中的行不会使它

python - 奇怪的 Python Bug - 来自 cron 的 Stagger (ID3) 编码错误,但不是来自命令行的错误

python - 使用诱变剂修复 ID3 标签的编码

java - iTunes 使用的这个 "Album artist"标签是什么?有什么方法可以使用 java 来设置它?

c# - 每次应用程序运行时如何在数据库中播种特定值?

c# - 你能用参数做一些像 RoutePrefix 这样的事情吗?

c# - svn 和 c#/visual studio 有什么限制吗?