2012-11-28 8 views
7

Ich bin ziemlich neu in Qt Entwicklung und ich benutze Qt5 Beta1 auf MacOSX.Qt5, Phonon und Multimedia kit

Seit zwei Tagen lese ich die Dokumente und suche nach Informationen über die verschiedenen Möglichkeiten, die ich habe, um ein Widget zu implementieren, das den Rahmen eines Videos anzeigt, der einem konkreten Zeitpunkt entspricht. Eine gute alte Vorschau, kurz. Zuerst dachte ich, dass Phonon die richtige Wahl wäre, da ich nichts Besonderes brauchte, da es "auf einer höheren Ebene (als QTMultimedia) genannt wird und in vielen Fällen besser für Anwendungsentwickler geeignet ist". Ich las seine Dokumentation und fand sogar einige Diskussionen, die mir helfen könnten, so zu beginnen; http://www.qtcentre.org/threads/13221-QT-4-4-Phonon-Video-Rendering-a-single-frame. Aber dann, als ich versuchte, etwas selbst zu machen, wurde mir klar, dass ich die Phonon-Bibliothek nicht hatte. Überrascht forsche ich über Phonon und Qt5. Und dann begannen alle Schwierigkeiten.

Ich begann Gespräch zu lesen wie diese: http://comments.gmane.org/gmane.comp.lib.qt.user/1581 oder diese: http://comments.gmane.org/gmane.comp.lib.qt.devel/3905 oder das andere Link: https://bugreports.qt.io/browse/QTBUG-26471. Und ich wurde wirklich verwirrt, ohne zu wissen, ob es eine gute Idee war, die Phonon-Bibliothek herunterzuladen, oder es wurde nach einiger Zeit nicht mehr auf Qt5 unterstützt. Also entschied ich mich, einen Schritt zurück zu gehen und noch einmal über die Verwendung von QTMultimedia anstelle von Phonon nachzudenken. Ich schaute auf ihrem VideoWidget Beispiel http://doc.qt.io/qt-4.8/qt-multimedia-videowidget-example.html und als ich versuchte, es zu laufen, es warf mehrere Fehler (Ich Posting nur den Anfang der Ausgabe):

In file included from ../VideoExample/videoplayer.cpp:43: 
In file included from ../VideoExample/videowidget.h:44: 
../VideoExample/videowidgetsurface.h:57:11: warning: 'VideoWidgetSurface::isFormatSupported' hides overloaded virtual function [-Woverloaded-virtual] 
bool isFormatSupported(const QVideoSurfaceFormat &format, QVideoSurfaceFormat *similar) const; 
    ^
../../Downloads/qt-everywhere-opensource-src-5.0.0-beta1/qtbase/include/QtMultimedia/../../../qtmultimedia/src/multimedia/video/qabstractvideosurface.h:78:18: note: hidden overloaded virtual function 'QAbstractVideoSurface::isFormatSupported' declared here 
virtual bool isFormatSupported(const QVideoSurfaceFormat &format) const; 
      ^
../VideoExample/videoplayer.cpp:61:40: error: expected a type 
QAbstractButton *openButton = new QPushButton(tr("Open...")); 
           ^
../VideoExample/videoplayer.cpp:62:6: error: no matching member function for call to 'connect' 
connect(openButton, SIGNAL(clicked()), this, SLOT(openFile())); 
^~~~~~~ 
../../Downloads/qt-everywhere-opensource-src-5.0.0-beta1/qtbase/include/QtCore/../../src/corelib/kernel/qobject.h:211:36: note: candidate function not viable: cannot convert argument of incomplete type 'QAbstractButton *' to 'const QObject *' 
static QMetaObject::Connection connect(const QObject *sender, const char *signal, 

Und das ist der Moment, als ich fühlte, ich war völlig verloren und hier schrieb:/

So sind meine aktuellen Fragen:

  1. hat jemand den Ist-Zustand von Phonon und wenn es ist eine gute Idee, es zu benutzen für QT5 weiß? Ist das so, was muss ich machen, damit es funktioniert? Ich denke, ich vermische Konzepte hier, aber ich bin furchtbar verloren zwischen dem, was Qt gehört und was nicht, und was sind die Implikationen beider Möglichkeiten.
  2. Irgendeine Idee, warum das Beispiel von QTMultimedia nicht funktioniert?

Im Allgemeinen würden Gedanken zu diesem Thema sehr geschätzt werden.

Antwort

6

Das Phonon-Gerüst scheint bei Qt 5 nicht enthalten zu sein (Qt and Key Technologies).

Das von Ihnen getestete Beispiel scheint nur mit Qt 4.7 und nicht mit Qt 5 zu funktionieren. Die Qt 5.0-Version finden Sie unter here. Die Qt 5.1 Version kann here gefunden werden.

+0

Danke, werde ich die Beispiel-Version für QT5 überprüfen! Sorry, wenn es sich dumm anhört, aber nicht eingeschlossen bedeutet, dass es nicht verwendet werden kann oder nur das nicht empfohlen wird? – AlvaroSantisteban

+0

Leider enthält das Beispiel bisher keinen Code ...:/ – AlvaroSantisteban

+3

IMO wird nicht einmal auf früheren Versionen von Qt empfohlen, da Phonon (ein KDE-Projekt) viele KDE-spezifische Funktionen enthält. Außerdem war Qt 4.4 (soweit ich weiß) die letzte Version von Qt, die Phonon offiziell unterstützt. Heute haben QtMultimedia und QtMobility Phonon abgelöst. –

0

Versuchen Sie, Phonon Development Kit zu installieren.

yum install phonon-devel