#include <QtGui/QApplication> #include <QApplication> #include <QWidget> #include <Phonon/MediaObject> #include <Phonon/VideoWidget> #include <Phonon/AudioOutput> #include <QUrl> #include <QObject> #include <QVBoxLayout> #include <QHBoxLayout> #include <QLabel> #include <Phonon/VolumeSlider> #include <Phonon/SeekSlider> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget *widget = new QWidget; widget->setWindowTitle("Media Player"); widget->resize(400,400); Phonon::MediaObject *media = new Phonon::MediaObject; media->setCurrentSource(Phonon::MediaSource("fable.avi")); Phonon::VideoWidget *vwidget = new Phonon::VideoWidget(widget); Phonon::createPath(media, vwidget); vwidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto); Phonon::AudioOutput *aOutput = new Phonon::AudioOutput(Phonon::VideoCategory); Phonon::createPath(media, aOutput); QLabel *label = new QLabel("Volume: "); Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider; volumeSlider->setAudioOutput(aOutput); volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); Phonon::SeekSlider *seekSlider = new Phonon::SeekSlider; seekSlider->setMediaObject(media); QHBoxLayout *hLayout = new QHBoxLayout; hLayout->addWidget(label); hLayout->addWidget(volumeSlider); hLayout->addStretch(); QVBoxLayout *vLayout = new QVBoxLayout; vLayout->addWidget(vwidget); vLayout->addWidget(seekSlider); vLayout->addLayout(hLayout); widget->setLayout(vLayout); widget->show(); media->play(); return app.exec(); } 贴入cpp文件,然后用qt编译即可,fable.avi是音频文件. 在linux下编译qt时,需要先编译好gstream相关的库才能编译出phonon,在assistant文档中输入 phonon overview 可以查看详细说明.