【问题标题】:Taglib not saving full tagsTaglib 不保存完整标签
【发布时间】:2015-12-30 00:09:42
【问题描述】:

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

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

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

【问题讨论】:

  • 标题、专辑和艺术家在旧标签格式中限制为 30 个字符,在新标签格式中限制为 60 个字符。也许文件有不同的标签版本

标签: c# mp3 taglib taglib-sharp


【解决方案1】:

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

除此之外:我发现这也解决了我遇到的另一个问题,即 unicode 在输出中变成问号。一个不错的奖励!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    相关资源
    最近更新 更多