Blackberry MediaPlayer检索空元数据

时间:2013-02-08 16:27:01

标签: c++ qt blackberry-10

我有一个级联项目,我在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
    }

如何在此处获取元数据?

提前致谢

1 个答案:

答案 0 :(得分:0)

这有点奇怪,但在开始播放文件之前,您可能无法获取元数据。尝试开始播放,您应该会看到metaDataChanged信号在不久之后被触发。