2011-08-26 37 views
3

我使用TagLib#從我的MP4文件中檢索元數據。到目前爲止,這麼好,一切正常,直到我發現了一個帶有「錯誤的」擴展名的文件,使得LagLib#puke。我發現這個文件保存了一個jpg擴展名,並且它使得TagLib拋出異常期望的SOI標記在啓動該文件。some googling後,我發現,這與讀取JPEG文件做。如何使TagLib#在擴展名錯誤的文件上工作?

如果我看看神奇的數字爲它返回的00 00 00 20 66 74 79 70的文件,用正確的signature for mp4對應。

我已經得到以下問題:

  1. 如何在不重命名文件的情況下讀取元數據。
  2. 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); 

回答

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加載。

+0

嗯,我隨時可以使用我的幻數嗅探器,但我想的TagLib做這樣的事情。 –

+0

你也可以使用'TagLib.Mpeg4.File.Create(file);'。 –

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

工作對我來說

相關問題