2012-11-28 16 views
7

Sono abbastanza nuovo nello sviluppo di Qt e utilizzo Qt5 Beta1 su MacOSX.Kit Qt5, Phonon e Multimedia

Per gli ultimi due giorni ho letto i documenti e ho cercato informazioni sulle diverse possibilità che ho per implementare un widget che mostri la cornice di un video che corrisponde a un momento concreto nel tempo. Una buona vecchia anteprima, in breve. Inizialmente pensavo che, dal momento che non avevo bisogno di nulla di particolare, Phonon sarebbe stata la scelta giusta, perché è chiamata "ad un livello più alto (rispetto a QTMultimedia) e in molti casi più adatta agli sviluppatori di applicazioni". Ho letto la sua documentazione e ho persino trovato alcune discussioni che potrebbero aiutarmi a iniziare, in questo modo; http://www.qtcentre.org/threads/13221-QT-4-4-Phonon-Video-Rendering-a-single-frame. Ma poi, quando ho provato a creare qualcosa per conto mio, mi sono reso conto che non avevo la libreria Phonon. Sorpreso da ciò, faccio ricerche su Phonon e Qt5. E questo è quando sono iniziati tutti i problemi.

ho iniziato a leggere la conversazione come questa: http://comments.gmane.org/gmane.comp.lib.qt.user/1581 o questa: http://comments.gmane.org/gmane.comp.lib.qt.devel/3905 o questo altro link: https://bugreports.qt.io/browse/QTBUG-26471. E mi sono davvero confuso, senza sapere se fosse una buona idea scaricare la libreria Phonon o non sarebbe stata supportata su Qt5 dopo un po 'di tempo. Così ho deciso di fare un passo indietro e ripensare all'utilizzo di QTMultimedia al posto di Phonon. Ho guardato il loro esempio VideoWidget http://doc.qt.io/qt-4.8/qt-multimedia-videowidget-example.html e quando ho provato a farlo funzionare, è buttato diversi errori (sto inviando solo l'inizio dell'uscita):

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, 

e questo è il momento in cui mi sentivo completamente perduto e ha scritto qui:/

Quindi le mie domande sono effettivi:

  1. qualcuno sa lo stato attuale di Phonon e se si tratta di un buona idea usarlo per QT5? È così, cosa devo farlo funzionare? Immagino di mixare concetti qui, ma sono terribilmente perso tra ciò che appartiene a Qt e ciò che no, e quali sono le implicazioni di entrambe le possibilità.
  2. Qualche idea sul perché l'esempio di QTMultimedia non funzioni?

In generale, i pensieri su questo argomento sarebbero molto apprezzati.

risposta

6

Il framework Phonon sembra non essere incluso in Qt 5 (Qt and Key Technologies).

L'esempio che hai provato sembra funzionare solo con Qt 4.7, non con Qt 5. La versione Qt 5.0 può essere trovata here. La versione Qt 5.1 può essere trovata here.

+0

Grazie, controllerò la versione per esempio QT5! Scusa se sembra stupido ma, non essere incluso significa anche che non può essere usato o solo che non è raccomandato? – AlvaroSantisteban

+0

Purtroppo, l'esempio non contiene alcun codice finora ...:/ – AlvaroSantisteban

+3

IMO non è raccomandato nemmeno nelle versioni precedenti di Qt, dal momento che Phonon (essendo un progetto KDE), include molte funzionalità specifiche per KDE. Inoltre, Qt 4.4 era (per quanto ne so) l'ultima versione di Qt che supporta ufficialmente Phonon. Oggi, QtMultimedia e QtMobility hanno sostituito Phonon. –

0

Provare a installare il kit di sviluppo phonon.

yum install phonon-devel