ActiveX Windows Media Player 9...

Alles rund um die Programmierung mit Qt
Antworten
SkyperHH
Beiträge: 5
Registriert: 29. April 2009 14:38
Wohnort: Hamburg

ActiveX Windows Media Player 9...

Beitrag von SkyperHH »

Hallo,

ich versuche über ActiveX den Windows Media Player einzubinden. Nicht die Version 6.4, die man in Beispielen findet, sondern Version 9.0 oder größer...

Habe ein kleines Testprogramm geschrieben und komme leider an einer Stelle nicht weiter :

Code: Alles auswählen

#include <QtGui>
#include <QAxWidget>
#include <QAxObject>

#include "playerwindow.h"
//#include "wmp.h"

PlayerWindow::PlayerWindow()
{
    wmp = new QAxWidget(this);
    wmp->setControl("{6BF52A52-394A-11D3-B153-00C04F79FAA6}");
    wmp->setProperty("URL", "D:/clock.avi");
    qDebug("Version Info: %s", qPrintable(wmp->property("versionInfo").toString()));

    QAxObject *subObj = wmp->querySubObject("currentMedia()");
    qDebug("Duration %f", subObj->property("duration").toDouble());

//    IWMPMedia *media;
//    wmp->queryInterface(?????, (void **)&media);
//    if (media)
//    {
//        double dur;
//        media->get_duration(&dur);
//        qDebug("Duration 2 %f", dur);
//        media->Release();
//    }
}
Ich kann das ActiveX-Widget des Media Players erzeugen und der Player wird angezeigt.

Über die Methode "URL" weise ich eine Datei zum abspielen zu, die Version des Players lese ich über "versionInfo" aus. Ersteres mit der QAxWidget-Methode "setProperty", letzteres mit "property".

Steht auch alles so in der Doku von MS zum Windows Media Player SDK http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Jetzt möchte ich die Zeit des Videos auslesen, dazu müßte ich die Methode "currentMedia" aufrufen die mir als Rückgabewert ein "IWMPMedia interface" gibt. http://msdn.microsoft.com/en-us/library ... 85%29.aspx ... das wiederum die Eigenschaft "duration" hat. http://msdn.microsoft.com/en-us/library ... 85%29.aspx

... und hier ist mein Problem. Ich habe es bis jetzt nicht geschafft, an die Eigenschaft "duration" über das Interface "IWMPMedia" zu kommen.

Weder die Methode "querySubObject" noch die Methode "queryInterface" bringen mich zum Ziel...

Ich bin für alle Ideen und Vorschläge dankbar zur Lösung des Problems.
Antworten