首页 > 解决方案 > 设置媒体源后无需等待即可读取 QMediaMetaData

问题描述

Qt 6.2.0 / Ubuntu 20.04。

我想从 mkv 视频文件中读取标题标签。所以起初我试图检索所有可用的标签:

QMediaPlayer p;
p.setSource(QUrl::fromLocalFile(dir.absolutePath()));
QMediaMetaData metadata = p.metaData();
QList<QMediaMetaData::Key> keys = metadata.keys();
foreach (QMediaMetaData::Key key, keys)
{
    qDebug() << key;
}

该列表为空。我知道文档说:

并非所有平台都支持所有标识符

但我不敢相信没有元数据存在!标题标签肯定在那里,因为 VLC 可以正确读取它。我的方法错了吗?

这里似乎QMediaPlayer需要一些时间来提取标签。是否有其他方法可以避免这种时间浪费?

目标是title从数百个视频文件中提取(或其他信息),这样我就不能为每个文件等太久。

标签: qtmkvqmediaplayerqt6

解决方案


推荐阅读