如何使 TagLib# 处理扩展名错误的文件?

发布于 2024-12-01 17:21:05 字数 782 浏览 0 评论 0原文

我正在使用 TagLib# 从 MP4 文件中检索元数据。到目前为止,一切都很好,直到我发现一个带有“错误”扩展名的文件,这使得 LagLib# 呕吐。我发现这个文件是以 jpg 扩展名保存的,它使 TagLib 抛出异常预期的 SOI 标记在文件的开头。 一些谷歌搜索 我发现这与读取 jpeg 文件有关,

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

有以下问题:

  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);

I'm using TagLib# to retrieve meta data from my MP4 file. So far, so good, everything works fine, until I spotted a file with a "wrong" extension" that made LagLib# puke. I discovered this file was saved with a jpg extension and it made TagLib throw exception Expected SOI marker at the start of the file. After some googling I discovered that this has to do with reading jpeg files.

If I look at the magic number for the file it returns 00 00 00 20 66 74 79 70, which corresponds with the correct signature for mp4.

I've got the following questions:

  1. How can I read the meta data without renaming the file.
  2. How does TagLib# determine meta data?

Any ideas?

Ps. The code I used was like this:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鸠书 2024-12-08 17:21:05

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

You can specify the mime type (force it):

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);

I don't know how it is loaded in TagLibSharp.

送舟行 2024-12-08 17:21:05
TagLib.File.Create(file, "audio/mp3", ReadStyle.None)

为我工作

TagLib.File.Create(file, "audio/mp3", ReadStyle.None)

worked for me

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文