Mailinglist Archive: opensuse-programming-de (174 mails)

< Previous Next >
Re: Qt + mplayer
  • From: Matthias Guede <matthias.guede@xxxxxx>
  • Date: Sat, 3 Jan 2004 14:01:43 +0100
  • Message-id: <200401031401.43602.matthias.guede@xxxxxx>
Am Freitag, 2. Januar 2004 22:41 schrieb A.Loesch:
> Hallo Matthias,
>
> From: matthias.guede@xxxxxx, 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


< Previous Next >
References