我正在使用TagLib从MP4和MP3文件中读取ID3数据。一般来说它工作得很好,但我有一个文件不会显示信息。
调试时,我发现我有一个损坏原因:Box header specified a size of {0} bytes but only {1} bytes left in the file
。
有人可以解释一下这意味着什么,以及是否可以解决这个问题?该文件是否已损坏?
我用来读取标签的代码是:
using (var fileStream = new FileStream(filePath, FileMode.Open))
{
var file = File.Create(new StreamFileAbstraction(filePath, fileStream, fileStream));
var isCorrupt = file.CorruptionReasons != null && file.CorruptionReasons.Any();
var title = isCorrupt ? Path.GetFileName(filePath) : file.Tag.Title;
var track = isCorrupt ? 0 : file.Tag.Track;
//Removed for brevity
}