Как заставить TagLib # работать с файлом с неправильным расширением? - PullRequest
3 голосов
/ 26 августа 2011

Я использую TagLib # для извлечения метаданных из моего файла MP4.Пока все хорошо, все работает отлично, пока я не обнаружил файл с «неправильным» расширением, которое сделало LagLib # puke. Я обнаружил, что этот файл был сохранен с расширением jpg и заставил TagLib выбросить исключение Ожидаемый маркер SOIв начале файла. После некоторого поиска в Google Я обнаружил, что это связано с чтением файлов JPEG.

Если я посмотрю на магическое число для файла, который он возвращает 00 00 00 20 66 74 79 70, что соответствует правильной подписи для 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);

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Вы можете указать тип пантомимы (принудительно):

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 голосов
/ 12 июля 2017
TagLib.File.Create(file, "audio/mp3", ReadStyle.None)

работал на меня

...