Taglib没有保存完整的标签

时间:2015-12-30 00:09:43

标签: c# mp3 taglib taglib-sharp

我使用taglib#输入mp3标题和艺术家名称作为从文件名解析的元数据。为此,我基本上循环遍历文件名列表,解析名称,创建taglib文件,更改标记,然后保存和处理taglib文件。奇怪的是,在我的情况下,我注意到在第一个文件成功更改后,标签可以作为输入的字符串最大长度。

这是我现在正在运行的一个小规模示例。

foreach (string path in files)
{
    using (TagLib.File f = TagLib.File.Create(path))
    {
        f.Tag.Title = "000000000011111111112222222222333333333344444444445555555555"
        f.Save();
    }
}

作为输出,触摸的第一个文件具有正确的标题字段:

000000000011111111112222222222333333333344444444445555555555

但是之后的每个文件只有一部分:

000000000011111111112222222222

您可以在资源管理器中看到它:

Each title field after the first is cut short.

无论是否修改了字段,结果都是相同的。此外,在taglib文件上显式调用Dispose()不会改变任何内容。为什么会这样?

1 个答案:

答案 0 :(得分:0)

在我找到答案的边缘时,似乎总是问一个问题。我做了一点挖掘,发现 this answer 也解决了我的问题。简而言之,请确保正在使用正确版本的Id3。

除此之外:我发现这也解决了我在输出中将unicode变成问号的另一个问题。一个很好的奖金!