0

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() を明示的に呼び出しても、何も変更されません。これはなぜですか?

4

1 に答える 1

0

答えを見つけようとしているとき、私はいつも質問をするようです。もう少し掘り下げたところ、この回答が私の問題も解決することがわかりました。つまり、正しいバージョンの Id3 が使用されていることを確認してください。

余談ですが、これにより、出力でユニコードが疑問符に変わるという別の問題も解決されることがわかりました。うれしいボーナス!

于 2015-12-30T00:29:07.350 に答える