Использование taglib в приложении Qt - PullRequest
0 голосов
/ 06 октября 2009

Я хотел бы получить длину медиафайла в приложении qt, которое я создаю, и поэтому я решил использовать taglib. Это метод, который предназначен для чтения длины

void loadMetaData(QString file) {
    QByteArray fileName = QFile::encodeName( file );
    const char * encodedName = fileName.constData();
    TagLib::FileRef fileref = TagLib::FileRef( encodedName );
    if (fileref.isNull())
    {
        qDebug() << "Null";
    }
    else
    {
       qDebug() << "Not Null";
    } 
}

Проблема в том, что fileref всегда равен нулю по какой-то причине, и я не могу понять, почему ......

Ответы [ 2 ]

0 голосов
/ 13 декабря 2009

TagLib # умеет работать с некоторыми файлами Theora. Я использовал его в проекте, но обнаружил, что он не будет работать со многими видео Theora (я не думаю, что конвертированные с использованием libtheora 1.1 работали).

TagLib.File file = TagLib.File.Create(@"c:\video.ogv");
string height = file.Properties.VideoHeight;

Это для .NET, а не C ++.

0 голосов
/ 06 октября 2009

Используйте метод получения audioProperties () для вашего объекта FileRef. возвращаемый указатель содержит длину файла в секундах.

...