Под винду реализация такова. Суть - перегнать инфо о файле в QTextEdit.
Реализовал таким способом:
1) качаем готовую сборку с DLL на
http://mediainfo.sourceforge.net/ru. В моем случае это был
MediaInfo_DLL_0.7.20_Windows_i386_WithoutInstaller.7z2) Пробуем собрать пример под MinGW (там проект на CodeBlock), если собирается нормально, мереходим к шагу 3, если нет , то качаем другую , допустим версия 7.9 у меня напрочь отказывалась собираться
.
3) Начинаем прикручивать к проекту:
a)в
pro добавляем путь к исходикам
C++ (Qt)
win32 {
INCLUDEPATH += .\
../../3rdparty/MediaInfo_DLL_0.7.20_Windows_i386/Developers/Source
}
б) В начале нашего файла инклудим заголовки исходя из того, что вы хотите - статику или динамику
C++ (Qt)
#ifdef MEDIAINFO_LIBRARY
#include "MediaInfo/MediaInfo.h" //Staticl
#define MediaInfoNameSpace MediaInfoLib;
#else //MEDIAINFO_LIBRARY
#include "MediaInfoDLL/MediaInfoDLL.h" //Dynamicl
#define MediaInfoNameSpace MediaInfoDLL;
#endif //MEDIAINFO_LIBRARY
#include <iostream>
#include <iomanip>
using namespace MediaInfoNameSpace;
в) Создаем нужное действие (кнопка,меню и т.п.) и крепим его к слоту.
C++ (Qt)
void MainWindow::getMediaInfo()
{
// Обьявляем полностью все поддерживаемые форматы :)
QString formats;
formats.append(tr("All supported formats (*.mkv *.mka *.mks *.ogg *.ogm *.avi *.wav *.mpeg *.mpg *.vob *.mp4 *.mpgv *.mpv *.m1v *.m2v *.mp2 *.mp3 *.asf *.wma *.wmv *.qt *.mov *.rm *.rmvb *.ra *.ifo *.ac3 *.dts *.aac *.ape *.mac *.flac *.dat *.aiff *.aifc *.au *.iff *.paf *.sd2 *.irca *.w64 *.mat *.pvf *.xi *.sds *.avr)"));
formats.append(tr("Matroska (*.mkv *.mka *.mks);;"));
formats.append(tr("Ogg (*.ogg *.ogm);;"));
formats.append(tr("Riff (*.avi *.wav);;"));
formats.append(tr("Mpeg 1&2 container (*.mpeg *.mpg *.vob);;"));
formats.append(tr("Mpeg 4 container (*.mp4);;"));
formats.append(tr("Mpeg video specific (*.mpgv *.mpv *.m1v *.m2v);;"));
formats.append(tr("Mpeg audio specific (*.mp2 *.mp3);;"));
formats.append(tr("Windows Media (*.asf *.wma *.wmv);;"));
formats.append(tr("Quicktime (*.qt *.mov);;"));
formats.append(tr("Real (*.rm *.rmvb *.ra);;"));
formats.append(tr("DVD-Video (*.ifo);;"));
formats.append(tr("AC3 (*.ac3);;"));
formats.append(tr("DTS (*.dts);;"));
formats.append(tr("AAC (*.aac);;"));
formats.append(tr("Monkey's Audio (*.ape *.mac);;"));
formats.append(tr("Flac (*.flac);;"));
formats.append(tr("CDXA, like Video-CD (*.dat);;"));
formats.append(tr("Apple/SGI (*.aiff *.aifc);;"));
formats.append(tr("Sun/NeXT (*.au);;"));
formats.append(tr("Amiga IFF/SVX8/SV16 (*.iff);;"));
formats.append(tr("Ensoniq PARIS (*.paf);;"));
formats.append(tr("Sound Designer 2 (*.sd2);;"));
formats.append(tr("Berkeley/IRCAM/CARL (*.irca);;"));
formats.append(tr("SoundFoundry WAVE 64 (*.w64);;"));
formats.append(tr("Matlab (*.mat);;"));
formats.append(tr("Portable Voice format (*.pvf);;"));
formats.append(tr("FastTracker2 Extanded (*.xi);;"));
formats.append(tr("Midi Sample dump Format (*.sds);;"));
formats.append(tr("Audio Visual Research (*.avr);;"));
QString media=QFileDialog::getOpenFileName(0,tr("Select Media File"),
QDir::homePath(),
formats);
if(media.isEmpty())
return;
MediaInfo MI;
MI.Open(media.toStdWString()); // конвертируем путь к файлу в нужный формат и открываем медиа файл
MI.Option(_T("Complete")); // Получение сжатой информации (Общее, Видео и Аудио дорожки)
String To_Display = MI.Inform().c_str();
editor->append(QString::fromStdWString(To_Display)); // editor это наследник QTextEdit :)
}
Вот и все, ложим к проге MediaInfo.dll и юзам на здоровье