该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
videowidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);
videowidget->setScaleMode(Phonon::VideoWidget::ScaleAndCrop);
当然也有提供函式让影片进入或退出全萤幕模式。以下为一个简短的程式码范例:
MediaObject *media = new MediaObject(parent);
VideoWidget *vwidget = new VideoWidget(parent);
Phonon::createPath(media, vwidget);
SeekSlider Class
SeekSlider类别提供一个可滑动的slider来设定多媒体串流播放的位置。所以它会连接到MediaObject,并控制串流目前的位置。
以下是一个使用的范例:
Phonon::MediaObject *moo = new Phonon::MediaObject;;
Phonon::AudioOutput *device = new Phonon::AudioOutput;
Phonon::createPath(moo, device);
moo->setCurrentSource(
QString("/home/gvatteka/Music/Lumme-Badloop.ogg"));
Phonon::SeekSlider *slider = new Phonon::SeekSlider;
slider->setMediaObject(moo);
slider->show();
moo->play();
VolumeSlider Class
VolumeSlider widget提供可以控制声音装置音量的widget。
用法其实与上面的SeekSlider类似,使用范例如下:
honon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory);
Phonon::createPath(mediaObject, audioOutput);
Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;
volumeSlider->setAudioOutput(audioOutput);
范例
再看过上面的一些类别介绍之后,其实就可以显一个简单的媒体播放器了,请看范例程式码:
#include
#include
#include
#include
#include
#include
#include
#include
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("../Puppet.mpg"));
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();
}
上面的程式码就完成了一个简易的多媒体播放器,当然还有很多部分还需要改进,不过在此仅就Phonon的使用上做介绍。执行之后的画面如下所示:
由於VideoWidget已经嵌入到QWidget了,所以你调整视窗大小的话,影片播放的视窗也会跟著调整。
引用地址:http://www.xici.net/u16539771/d104902644.htm