在 Qt 应用程序中使用 taglib
我想获取我正在构建的 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 始终为空,我不明白为什么......
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......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 FileRef 对象上使用 getter audioProperties() 。 返回的指针包含文件的长度(以秒为单位)。
Use the getter audioProperties() on your FileRef object. The returned pointer contains the length of the file in seconds.
TagLib# 能够处理一些 Theora 文件。我在一个项目中使用了它,但发现它不适用于许多 Theora 视频(我认为任何使用 libtheora 1.1 进行转换的视频都不起作用)。
这是针对 .NET 的,而不是针对 C++ 的。
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).
This is for the .NET, not C++ though.