0

作成中の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 が常に null であり、その理由がわかりません......

4

2 に答える 2

0

TagLib# は一部の Theora ファイルで動作します。プロジェクトで使用しましたが、多くの Theora ビデオでは機能しないことがわかりました (libtheora 1.1 を使用して変換されたものは機能しなかったと思います)。

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

これは .NET 用であり、C++ 用ではありません。

于 2009-12-13T19:53:52.097 に答える
0

FileRef オブジェクトでgetter audioProperties()を使用します。返されたポインターには、ファイルの長さが秒単位で含まれています。

于 2009-10-06T12:24:56.907 に答える