Autore: Fabio Di Matteo
Ultima revisione: 27/06/2013
Phonon è il sottosistema multimediale ufficiale per le librerie QT. Con Phonon è possibile realizzare ,abbastanza facilmente, lettori multimediali come music e video player. Phonon funziona con diversi backend nei sistemi Gnu/Linux tra ai quali Gstreamer, Vlc, Mplayer, Xine .Di seguito un piccolo estratto di codice che realizza un semplice lettore di file video. Nei miei esempi ho utilizzato su una linuxbox phonon-gstreamer.
main.cpp
#include <phonon/mediaobject.h> #include <phonon/audiooutput.h> #include <phonon/VideoPlayer> #include <phonon/VideoWidget> #include <phonon/MediaSource> #include <QFileDialog> #include <QtGui/QApplication> #include <QtGui/QMainWindow> #include <QUrl> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); }; MainWindow::MainWindow() { //Mi servo di un Qfiledialog per prendere un file video da vedere QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("Files (*.*)")); //Imposto la sorgente multimediale (il nome del file da leggere) Phonon::MediaObject *media = new Phonon::MediaObject(); media->setCurrentSource(Phonon::MediaSource(QString(fileName))); //Inizializzo il widget player che conterra' il video Phonon::VideoPlayer *videoPlayer = new Phonon::VideoPlayer(Phonon::VideoCategory, this); //con "this" lo include in questa MainWindow //Setto le dimensioni della finestra e del vidget video this->setFixedSize(QSize(640,480)); videoPlayer->setFixedSize(QSize(640,480)); //se voglio posso spostare l'area di rendering del video //videoPlayer->move(800-480,0); //Mostro a schermo il widget videoPlayer->show(); //Connetto i segnali connect(videoPlayer, SIGNAL(finished()), videoPlayer, SLOT(deleteLater())); //Avvio la sorgente multimediale videoPlayer->play(media->currentSource()); } int main(int argc, char **argv) { QApplication app(argc, argv); QApplication::setApplicationName("giocare con Phonon"); MainWindow mw; mw.show(); return app.exec(); } #include "main.moc"
phonon.pro
# Automatically generated by qmake (2.01a) gio giu 27 11:42:28 2013 ###################################################################### QT += phonon TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . # Input SOURCES += main.cpp
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.