首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在taglib-sharp中有与Label/Publisher等价的字段吗?

在taglib-sharp中有与Label/Publisher等价的字段吗?
EN

Stack Overflow用户
提问于 2012-11-13 20:54:32
回答 4查看 1.5K关注 0票数 3

我正在尝试使用Taglib-sharp更新label/publisher字段,但在使用Object Browser的对象层次结构中看不到它。

我已经搜索了谷歌和文档,看起来这是一个没有被迎合的领域。

在我寻找替代方案之前(有人能给我建议吗?)可以编辑那些字段,我想我应该有最后一次破解,问问StackOverflow社区中谁熟悉TagLib-sharp,有更有见地的意见吗?

提前谢谢你,

弗朗西斯

更新:我已经研究了mpg123和UltraID3Lib等其他库,但它们似乎都有相同的限制。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-30 03:03:36

丹尼尔·福奇的回答对我不起作用。但是,这只是一个开始。

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

下载Source

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

公共虚拟字符串Publisher { get { return "";} set {} }

  1. 打开文件TagLib/Id3v2/Tag.cs并插入以下代码(我将其插入到PerformersSort下面的1292行):

公共重写字符串发布者{ get { return GetTextAsString(FrameType.TPUB);} set { SetTextFrame(FrameType.TPUB,value);} }

  1. 打开文件TagLib/Id3v2/FrameTypes.cs并插入以下代码(我将其插入到TPOS下面的第71行):

静态只读ReadOnlyByteVector TPUB =“TPUB”;公共静态只读

  1. 现在出现了“啊哈”之类的东西。打开文件TagLib/CombinedTag.cs并插入以下代码(我将其插入到PerformersSort下面的第318行):

公共重写字符串发布器{ get { foreach (标签中的标签){ if (标签== null) continue;字符串值= tag.Publisher;if (值!= null)返回值;} return null;} set { foreach (标签中的标签) if (标签!= null) tag.Publisher =值;} }

  1. 最后,编译代码。

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

票数 5
EN

Stack Overflow用户

发布于 2012-12-05 19:03:55

TagLib#不能读取发布者标签。即使是到目前为止的最新版本(2.1.0.0)也无法做到这一点。作为替代方案,您可以使用TagLib#的源代码自己添加此功能,该源代码可以免费获得。

要执行此操作,请打开文件TagLib/Id3v2/FrameTypes.cs并在某个位置添加以下行:

代码语言:javascript
复制
public static readonly ReadOnlyByteVector TPUB = "TPUB";  // Publisher field

并在文件TagLib/Id3v2/Tag.cs

代码语言:javascript
复制
public string Publisher {
    get {return GetTextAsString (FrameType.TPUB);}
    set {SetTextFrame (FrameType.TPUB, value);}
}

然后,您可以使用如下所示的内容访问Publisher字段

代码语言:javascript
复制
TagLib.File tf = TagLib.File.Create(...);   // open file
tf.Tag.Publisher = "Label XY";              // write new Publisher
tf.Save();                                  // save tags

请注意,这是一个丑陋的黑客攻击,但适用于MP3文件。

票数 1
EN

Stack Overflow用户

发布于 2012-11-13 22:48:41

我不习惯TagLib#,但我在Qt项目中使用TagLib,在该项目中,我通过检查TagLib::File::properties来检索此信息。看一下文档,它只是一个包含每个属性和值的字符串映射。

希望TagLib#有这个方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13361102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档