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 由于某种原因总是为空,我不知道为什么......

4

2 回答 2

0

在 FileRef 对象上使用 getter audioProperties() 。返回的指针包含文件的长度(以秒为单位)。

于 2009-10-06T12:24:56.907 回答
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 回答