Возникла задача считывания метатагов из MPEG-2 файлов. Известно, что mpeg-2 напрямую не поддерживаются Windows Media Player. Для их воспроизведения используются декодеры сторонних производителей. Когда плееру подаётся файл, он просит декодер разобрать этот файл, а декодер уже считывает битрейт, длину и т.д.
Вопрос 1:
Возможно ли вытянуть с помощью WM SDK эти тэги вообще или без подгрузки стороннего декодера это невозможно?
В приведённом ниже коде делается следующее:
1. получаем интерфейс mediaCollection
2. добавляем в mediaCollection mpeg-2 файл
3. делаем файл текущим
4. пытаемся получить интерфейс IWMPMedia, из которого с помощью функций LoadTags(media) и LoadAdditionalTags(media) выдираем метатаги.
Вопрос 2: Почему в этом коде, когда подсовываешь mpeg-2 функция get_currentMedia считывает только часть необходимых тегов? (может потому что остальные должен декодер считывать?). Зато когда в функцию get_currentMedia подставляешь media, то вылетает assert, понятно откуда, но после assert загружается декодер (у меня ffdshow) и все тэги считываются нормально!!! Правда это всё только в Debug mode, в Release ничего подобного не наблюдается (не считываются тэги).