如何使TagLib#在扩展名错误的文件上工作?
问题描述:
我使用TagLib#从我的MP4文件中检索元数据。到目前为止,这么好,一切正常,直到我发现了一个带有“错误的”扩展名的文件,使得LagLib#puke。我发现这个文件保存了一个jpg扩展名,并且它使得TagLib抛出异常期望的SOI标记在启动该文件。some googling后,我发现,这与读取JPEG文件做。如何使TagLib#在扩展名错误的文件上工作?
如果我看看神奇的数字为它返回的00 00 00 20 66 74 79 70
的文件,用正确的signature for mp4对应。
我已经得到以下问题:
- 如何在不重命名文件的情况下读取元数据。
- TagLib#如何确定元数据?
任何想法?
Ps。我使用的代码是这样的:
string file = @"D:\vs2008\Inetpub\wwwroot\Test\data\AA028578_7_2.jpg";
TagLib.File tag = TagLib.File.Create(file);
Console.WriteLine(tag.MimeType);
答
您可以指定MIME类型(强制):
string file = @"D:\vs2008\Inetpub\wwwroot\Test\data\AA028578_7_2.jpg";
TagLib.File tag = TagLib.File.Create(file, "video/mp4", TagLib.ReadStyle.Average);
Console.WriteLine(tag.MimeType);
我不知道它是如何在TagLibSharp加载。
答
TagLib.File.Create(file, "audio/mp3", ReadStyle.None)
工作对我来说
嗯,我随时可以使用我的幻数嗅探器,但我想的TagLib做这样的事情。 –
你也可以使用'TagLib.Mpeg4.File.Create(file);'。 –