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 <QApplication> #include <QWidget> #include <phonon> #include <QUrl> #include <QObject> #include <QVBoxLayout> #include <QHBoxLayout> #include <QLabel>
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了,所以你调整视窗大小的话,影片播放的视窗也会跟著调整。
|
相关推荐
Qt基于Phonon做的视频播放器
Phonon是KDE 4的多媒体API 。Phonon提供一个稳定的API允许KDE 4独立于任何一个声音系统服务器如xine。
phonon最初是 一个 源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的(如gstreamer、xine),只需调用相应的接口就行,但这中间需要一个中转,被称为...
主要介绍Qt Phonon多媒体框架的结构及其编程方法
QT的Phonon插件写的播放器,代码供参考。
qt 的phonon 开发的播放器。 有pro 文件,点击批处理,生成vcproj文件即可使用。有注释。
基于QT phonon开发的一个媒体播放器,大家可以试下,我测试过能用
基于QT的音乐播放器 运用phonon实现
phonon-mplayer的源码,编译后可以使用,问题不大,亲测有效
可用Qt phonon来调用mplayer来作为后端播放音视频.本来是要播放amr文件,但Qt本身播放amr不是那么容易的,就想到调用mplayer来播放,找了一下资料,phonon 可用mplayer作为后端来播放,mplayer好下载,但需要一个...
qt phonon音乐播放器代码,供大家参考
此源代码是基于QT Phonon的视频音频播放器的设计与实现
qt4.8 自带的 phonon 插件支持的视频音频较少,一般开发都采用mplayer来替代从而扩展支持的格式。这个插件测试可用,里面有编译好的库文件(mplayer.lib 、phonon_mp.dll、phonon_mp.lib)具体参考...
Qt phonon应用测试项目 文章地址 http://blog.csdn.net/silencesu/article/details/8005348#reply
利用qt,phonon框架制作的音乐播放器,添加歌曲播放音乐,播放显示歌词
基于phonon写的音视频播放器。实现添加文件/文件夹,实现视频快进/退,音量调节。
基于Qt4.6.3开发的视频播放器,功能全面,代码简单,基于Qt Phonon实现。对于希望简单实现播放器的同学或者想学习Qt Phonon的同学,是个非常好的学习资料。
适用于Qt 4最后版本4.8.6; mplayer支持多种多媒体格式的播放; 用于Qt应用程序集成丰富的多媒体播放功能; 包含debug版本和release版本,分别对应debug和release发布。...(Qt 5不支持Phonon,多媒体播放功能较弱)