我有一个级联项目,我在 cpp 中使用 MediaPlayer 类。我已经定义了一个处理程序类,它处理 metaDataChanged 事件,但是当我设置源 url 并调用 mediaPlayer.prepare() 方法时,它不会检索元数据中的任何内容,因此它只是空的 QVariantMap。
有趣的是,甚至没有调用为 metaDataChaned 事件定义的事件处理程序。
我想我可以在这里添加一些东西来获取元数据,但是 prepare() 方法成功地工作了,所以我不知道有什么问题
这是我尝试过的一段代码。
bb::multimedia::MediaPlayer* mp = new bb::multimedia::MediaPlayer();
mp->setSourceUrl(resultString);
mp->prepare();
MetaDataReader metaDataReader(mp);
和一堂课
MetaDataReader::MetaDataReader(bb::multimedia::MediaPlayer* mediaPlayer) : QObject(NULL)
{
connect(mediaPlayer, SIGNAL(metaDataChanged(const QVariantMap&)), this, SLOT(onMetaDataChanged(const QVariantMap&)));
}
void MetaDataReader::onMetaDataChanged(const QVariantMap& metaData)
{
someCode
// It doesn't reach this SLOT
}
如何在这里获取元数据?
提前致谢