gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:34:47 26 4
gpt4 key购买 nike

我正在尝试使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com