Barra laterale

programmazione:qt:introduzione_a_phonon

Introduzione a Phonon

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.

Il codice

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"

Il file del progetto

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

programmazione/qt/introduzione_a_phonon.txt · Ultima modifica: 18/04/2018 - 15:48 (modifica esterna)