[Qt4] MediaPlayer (*würg*) einbetten
[Qt4] MediaPlayer (*würg*) einbetten
hi,
ich hab hier ein besch...öntes Problem.
Lange Fassung: Ich muss mich jetzt hier als Verräter outen... mein Chef (bitte kein Kommentar über ihn, ich hab mir schon selbst 'ne Sammlung von negativen Kommentaren über ihn erstellt...) hat grad kurzfristig beschlossen, dass die MP3s, die wir im aktuellen Projekt benutzen/verkaufen mit DRM geschützt werden sollen. Als Folge dessen hat sich mein Problem MP3s abzuspielen (siehe hier und hier) leicht verändert. Ich brauche nun die Möglichkeit einen Player, der DRM unterstützt, in ein Qt Projekt einzubinden. Beschränkt wird das ganze dafür (erstmal) auf Windows. Daher kam mir die "Lösung" den M$ Speicherfresser ("Media Player") zu verwenden. Ich hatte auch irgendwo gelesen, wie ich den am besten in ein Qt-Widget einbette, so dass ich ihn zum Abspielen von MP3s verwenden kann. Weiß aber nicht mehr wo, und find auch nichts... kann mir da vllt einer weiterhelfen?
Kurze Fassung: Integrieren von M$ "Media Player" in ein Qt Widget, wie?
Danke
Elgrimm Esleborn
PS: Ja ich bin Mitglied im Protect Privacy und muss trotzdem "DRM-Software" entwickeln. Tut mir ja selbst weh...
ich hab hier ein besch...öntes Problem.
Lange Fassung: Ich muss mich jetzt hier als Verräter outen... mein Chef (bitte kein Kommentar über ihn, ich hab mir schon selbst 'ne Sammlung von negativen Kommentaren über ihn erstellt...) hat grad kurzfristig beschlossen, dass die MP3s, die wir im aktuellen Projekt benutzen/verkaufen mit DRM geschützt werden sollen. Als Folge dessen hat sich mein Problem MP3s abzuspielen (siehe hier und hier) leicht verändert. Ich brauche nun die Möglichkeit einen Player, der DRM unterstützt, in ein Qt Projekt einzubinden. Beschränkt wird das ganze dafür (erstmal) auf Windows. Daher kam mir die "Lösung" den M$ Speicherfresser ("Media Player") zu verwenden. Ich hatte auch irgendwo gelesen, wie ich den am besten in ein Qt-Widget einbette, so dass ich ihn zum Abspielen von MP3s verwenden kann. Weiß aber nicht mehr wo, und find auch nichts... kann mir da vllt einer weiterhelfen?
Kurze Fassung: Integrieren von M$ "Media Player" in ein Qt Widget, wie?
Danke
Elgrimm Esleborn
PS: Ja ich bin Mitglied im Protect Privacy und muss trotzdem "DRM-Software" entwickeln. Tut mir ja selbst weh...
Zuletzt geändert von Esleborn am 6. November 2005 22:04, insgesamt 2-mal geändert.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
sry ich bin echt zu blöd zum sch....
meine Frage war komplett falsch gestellt... ich wollte eigentlich fragen, ob es möglich ist bzw wie es möglichst ist, den MediaPlayer mit "eigenen Buttons" usw auszustatten... leichter Alkoholgenuss und 2 Tage ohne Schlaf haben die Frage leider etwas umformuliert
... Sry, spätestens beim "kommt schon bitte" hätte ich die Frage vllt nochmal lesen sollen... sry
meine Frage war komplett falsch gestellt... ich wollte eigentlich fragen, ob es möglich ist bzw wie es möglichst ist, den MediaPlayer mit "eigenen Buttons" usw auszustatten... leichter Alkoholgenuss und 2 Tage ohne Schlaf haben die Frage leider etwas umformuliert
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Code: Alles auswählen
QAxWidget *p_widget = new QAxWidget ( &window );
p_widget->setControl ( "{6BF52A52-394A-11d3-B153-00C04F79FAA6}" );Code: Alles auswählen
IDispatch *p_result = ( IDispatch * ) p_widget->querySubObject ( "newMedia ( QString )", filePathString );
p_widget->dynamicCall ( "setCurrentMedia(IDispatch*)", p_result );
E.E.
PS: Ich will nicht sofort das Abpsielen starten... außerdem brauch ich die Möglichkeit zum pausieren und stoppen...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Ich habe das gleiche Problem. Ich kann das WMP 11.0 ActiveX Control mit setControl() anlegen, aber um an den play(), stop() usw Methoden zu kommen, brauche ich das IWMPControls Interface. Wie kann man über das QAXWidget Objekt, das durch setControl für das WMP 11 ActiveX generiert wurde, ein Objekt mit dem IWMPControls Interface instanzieren ? Kann bitte jemand mit einem C++ Code-Sample helfen ?
Danke im voraus.
Danke im voraus.
Hallo zusammen,
bevor es hier zu chaotisch wird eine allgemein gehaltene Anleitung...
Das folgende gilt natürlich nur für Windows und ich nehme an man braucht auch die Commercial-Version. Ich halte das ganze bewusst allgemein.
Als erstes sollte man das richtige Control finden btw die entsprechende CLSID. Persönlich nutze ich dafür am liebsten ein kleines Tool namens ActiveXHelper (download).
Hat man das Control gefunden, sollte man sich eine Doku der Interfaces erstellen lassen. Hierfür bringt Qt ein kleines Tool mit:
<IrgendeinLaufwerk>:\Qt\4.x.x\tools\activeqt\dumpdoc
Aufruf mit: dumpdoc.exe "<CLSID>" -o doku.html
Das Tool kompilieren und verwenden. Am Ende sollte ne schicke HTML-Doku bei raus kommen (Parameter -O). In der Doku findet man nun kleine Codeschnipsel, wie man die einzelnen Funktionen verwenden soll.
Mit den Codeschnipseln und ein wenig herumprobieren, bekommt man das Control dann üblicherweise zum laufen.
Alternativ kann man versuchen sich mit dem Tool "dumpcpp" Interfaceklassen erstellen zu lassen, aber ehrlich gesagt hat das bei mir bisher keinen Erfolg gebracht, wenn es jemand schafft wäre ich für ein paar Tips dankbar
hatte dann immer Probleme mit Namespaces und ich konnte nichts davon kompilieren.
Ciao,
Sephral
bevor es hier zu chaotisch wird eine allgemein gehaltene Anleitung...
Das folgende gilt natürlich nur für Windows und ich nehme an man braucht auch die Commercial-Version. Ich halte das ganze bewusst allgemein.
Als erstes sollte man das richtige Control finden btw die entsprechende CLSID. Persönlich nutze ich dafür am liebsten ein kleines Tool namens ActiveXHelper (download).
Hat man das Control gefunden, sollte man sich eine Doku der Interfaces erstellen lassen. Hierfür bringt Qt ein kleines Tool mit:
<IrgendeinLaufwerk>:\Qt\4.x.x\tools\activeqt\dumpdoc
Aufruf mit: dumpdoc.exe "<CLSID>" -o doku.html
Das Tool kompilieren und verwenden. Am Ende sollte ne schicke HTML-Doku bei raus kommen (Parameter -O). In der Doku findet man nun kleine Codeschnipsel, wie man die einzelnen Funktionen verwenden soll.
Mit den Codeschnipseln und ein wenig herumprobieren, bekommt man das Control dann üblicherweise zum laufen.
Alternativ kann man versuchen sich mit dem Tool "dumpcpp" Interfaceklassen erstellen zu lassen, aber ehrlich gesagt hat das bei mir bisher keinen Erfolg gebracht, wenn es jemand schafft wäre ich für ein paar Tips dankbar
Ciao,
Sephral