Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7565959
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: 嵌入式

2011-09-02 16:52:18

 

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,用来连接sourcesink,即用来连接来源与输出装置

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   

阅读(2785) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~