tags:

views:

268

answers:

2

I'd like to get the length of a media file in a qt application i'm building and so i decided to use taglib. This is the methos that is meant to read the length

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";
    } 
}

Problem is fileref is always null for some reason and i can't figure out why......

A: 

Use the getter audioProperties() on your FileRef object. The returned pointer contains the length of the file in seconds.

Patrice Bernassola
A: 

TagLib# is able to work with some Theora files. I used it in a project but found it wouldn't work with many Theora videos (I don't think any converted using libtheora 1.1 worked).

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

This is for the .NET, not C++ though.

Gabe