3

我正在使用TagLib#从我的 MP4 文件中检索元数据。到目前为止,一切都很好,一切正常,直到我发现一个带有“错误”扩展名的文件导致 LagLib# 呕吐。我发现这个文件是用 jpg 扩展名保存的,它使 TagLib在开始时抛出异常 Expected SOI marker文件。经过一番谷歌搜索后,我发现这与读取 jpeg 文件有关。

如果我查看它返回的文件的幻数00 00 00 20 66 74 79 70,它对应于 mp4 的正确签名

我有以下问题:

  1. 如何在不重命名文件的情况下读取元数据。
  2. TagLib# 如何确定元数据?

有任何想法吗?

附言。我使用的代码是这样的:

string file = @"D:\vs2008\Inetpub\wwwroot\Test\data\AA028578_7_2.jpg";
TagLib.File tag = TagLib.File.Create(file);
Console.WriteLine(tag.MimeType);
4

2 回答 2

3

您可以指定 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 中的。

于 2011-08-26T14:34:21.840 回答
0
TagLib.File.Create(file, "audio/mp3", ReadStyle.None)

为我工作

于 2017-07-12T10:13:24.543 回答