2013-02-08 32 views
0

我有一個cascades項目,我在cpp中使用MediaPlayer類。 我已經定義了處理metaDataChanged事件的處理程序類,但是當我設置源url並調用mediaPlayer.prepare()方法時,它不檢索元數據中的任何內容,因此它只是空的QVariantMap。黑莓MediaPlayer檢索空元數據

有趣的是,爲metaDataChaned事件定義的事件處理程序甚至沒有被調用。

我覺得可能有東西,我可以在這裏添加到能夠獲得元數據,但prepare()方法workds成功地,所以我不知道有什麼問題

這裏是一段代碼我試過了。

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 
    } 

我怎麼能在這裏得到的元數據?

在此先感謝

+0

可以添加你試過的那段代碼嗎? – 2013-02-09 16:39:39

回答

0

這是一個有點奇怪,但直到你的文件開始播放,你可能無法得到的元數據。嘗試開始播放,你應該看到metaDataChanged信號不久後被解僱。