Fra*_*cis 3 .net c# id3 taglib-sharp
我正在尝试使用Taglib-sharp更新标签/发布者字段,但使用对象浏览器在其对象层次结构中的任何位置都看不到它。
我已经搜索了谷歌和文档,看起来这是一个不适合的字段。
在我寻找可以编辑这些字段的替代方法之前(我可以提出任何建议吗?),我想我要最后破解一下,然后在StackOverflow社区中问一个熟悉TagLib-sharp并拥有更深入见解的人吗?
提前致谢,
弗朗西斯
更新:我已经研究了其他库,例如mpg123和UltraID3Lib,但是它们似乎具有相同的局限性。
好吧,丹尼尔·福克斯(Daniel Fuchs)的答案对我没有用。但是,这是一个开始。
在TagLib-sharp代码中添加字段的步骤是:
下载源
打开File TagLib / Tag.cs并插入以下代码(我将其插入PerformersSort下面的250行):
public virtual string Publisher
{
get { return ""; }
set { }
}
Run Code Online (Sandbox Code Playgroud)打开文件TagLib / Id3v2 / Tag.cs并插入以下代码(我将其插入PerformersSort下面的第1292行):
public override string Publisher
{
get { return GetTextAsString(FrameType.TPUB); }
set { SetTextFrame(FrameType.TPUB, value); }
}
Run Code Online (Sandbox Code Playgroud)打开File TagLib / Id3v2 / FrameTypes.cs并插入以下代码(我在TPOS的第71行下面插入了它):
public static readonly ReadOnlyByteVector TPUB = "TPUB";
Run Code Online (Sandbox Code Playgroud)现在出现“啊哈”的事情。打开File 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;
}
}
Run Code Online (Sandbox Code Playgroud)最后,编译代码。
重要提示:我也无法编译代码。您必须下载SharpZipLib dll(.NET 2.0),并将此dll包含在taglib项目中。另外,我需要安装用Nuget制作的NUnit。最后,我在测试代码中评论了GDK库及其所有错误,因为在生产中将不使用它。
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |