2012年(1008)
分类:
2012-08-01 11:07:32
原文地址:简单媒体播放器 作者:luozhiyong131
MediaObject类:提供处理多媒体播放的界面。它接受并管理来自MediaSource的媒体资料,控制播放、暂停、停止等。
两类输出: AudioOutput声音输出, VideoWidget视频播放setCurrentSource(const MediaSource& source)设定MediaObject的多媒体来源。play(), pause(), stop()
如:
Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this);
Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(this);
Phonon::createPath(mediaObject, videoWidget);
Phonon::AudioOutput *audioOutput = new
Phonon::AudioOutput(Phonon::VideoCategory, this);
Phonon::createPath(mediaObject, audioOutput);
mediaObject->play();
Phonon::createPath() 用来建立一个path,用来连接source于sink,即用来连接来源与输出装置
AudioOutput类:输出声音
Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this);
mediaObject->setCurrentSource(Phonon::MediaSource("/mymusic/barbiegirl.wav"));
Phonon::AudioOutput *audioOutput = new
Phonon::AudioOutput(Phonon::MusicCategory, this);
Phonon::Path path = Phonon::createPath(mediaObject, audioOutput);
VideoWidget类:提供显示出影片的类
MediaObject *media = new MediaObject(parent);
VideoWidget *vwidget = new VideoWidget(parent); Phonon::createPath(media, vwidget);
SeekSlider类:提供一个可滑动的slider控制多媒体流播放位置
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类:提供可控制声音音量的Widget
Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory);
Phonon::createPath(mediaObject, audioOutput);
Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;
volumeSlider->setAudioOutput(audioOutput);
实例:
建立以QWidget为基类的工程。
在widget.h头文件中定义成员变量
Phonon::MediaObject *mediaObject; //媒体对象
Phonon::VideoWidget *videoWidget; //视频输出
Phonon::AudioOutput *audioOutput; //音频输出
Phonon::SeekSlider *slider; //播放进度条
Phonon::VolumeSlider *volumeSlider; //音量调节
在构造函数中初始化成员变量
mediaObject = new Phonon::MediaObject(this); //媒体对象的初始化(指定父组件为当前窗体)
videoWidget = new Phonon::VideoWidget(ui->frameVideo); //视频输出对象初始化(指定它的父组件为窗口部件frameVideo)
Phonon::createPath(mediaObject, videoWidget); //将媒体对象和视频输出对象连接
audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory, this);//音频输出对象初始化(指定它的父组件为当前窗体)
Phonon::createPath(mediaObject, audioOutput); //媒体对象和音频输出对象连接
slider = new Phonon::SeekSlider(mediaObject, ui->frameSeek);//进度条初始化(指定它的父组件为frameSeek)
volumeSlider = new Phonon::VolumeSlider(audioOutput, ui->frameVolume);//音量调节对象初始化(指定它的父组件为frameVolume)
audioOutput->setVolume(0.5);//设置默认的音量
videoWidget->installEventFilter(this);//安装事件过滤器
源代码: VideoPlay.rar