Am Freitag, 2. Januar 2004 22:41 schrieb A.Loesch:
Hallo Matthias,
From: matthias.guede@web.de, Saturday, January 03, 2004 12:01 AM
Hallo,
ich wuerde gerne die Ausgabe von mplayer auf einem QT-Widget darstellen. Das funktioniert auch gut, wenn das entsprechende Widget ein Rootwindow ist.
Gibts dafür Democode oder ein Howto? Das hab ich noch nicht versucht
Das ist kein Problem. man startet mplayer einfach mit: mplayer -wid mywidget->winId(); Wichtig dabei ist, dass mplayer ohne GUI gestartet wird (i.e. in mplayer.conf darf nicht "gui=yes" stehen)
klingt aber interessant, daher jetzt mal ein paar Schüsse ins Blaue:
Ich habe schon versucht das Problem einzugrenzen. Meiner Meinung liegt es daran, dass das Widget nach dem Start von mplayer ein UnmapNotify-Event erhaelt. Kurz bevor der Movie dann anlaeuft bekommt das parent ein MapRequest-Event. Nur weiss ich gar nicht, wie ich den darauf reagieren soll. Hat jemand eine Idee?
Such mal in der Trolltech Mailingliste nach 'unmapnotify' da gibts dann ein Beispiel, wie die X11-Events aufgefangen werden, evtl. kannst Du dann Deinen eigenen Handler schreiben, der solche Sachen einfach ignoriert.
Danke fuer den Tip. Die Suche war leider nicht sehr ergiebig. Habe habe in der Zwischenzeit zumindest einen Workaround: 1. Erhaelt das anzuzeigende Widget den "UnmapNotify" muss man explicit "hide()" aufrufen. 2. Erhaelt das parent spaeter den "MapRequest" so muss es "child->show()" aufrufen, wobei child ein Zeiger auf das anzeigende Widget ist. Keine Ahnung warum das so ist, aber es funktioniert soweit mal. Allerdings treten schon wieder neue Probleme auf. Werde mich wohl doch noch auf meinen alten Tage mit der Xlib beschaeftigen muessen. Ich bin sicher ihr werdet bald wieder von mir hoeren :) Gruesse Matthias