QT 多媒体软件设计

QT中多媒体的播放,phonon  主要使用MediaObject ,sinks,path的方法

MediaObject 用于对媒体流基本控制,如播放,暂停,停止等,通过读取MediaSource

MediaCtroller用于对媒体进行控制,如章节,菜单,列表等管理

 

sinks

用于从phonon中输出媒体到硬件设备声卡等,

path用于连接MediaObject 和sinks,在他们之间建立联系,输送媒体文件

createPath(MediaObject ,AudioOutput)建立连接

 

 Phonon::AudioOutput对象用来向audio device 输出音频文件,并且提供 Phonon::VolumeSlider滑块来控制音量,

volumeSlider->setAudioOutput(audioOutput);来指顶控制一个音频输出设备

volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); 来控制音量最大,

 

Phonon::SeekSlider用于管理音频的播放位置,通过

MediaObject  mediaObject

seekSlider = new Phonon::SeekSlider(this);

seekSlider->setMediaObject(mediaObject);来将该滑块和一个音频播放对象连接起来

 

 

要播放一个音频文件,使用的MediaObject对象,该对象使用setCurrentSource来添加一个MediaSource,MediaSource通过文件名来指定一个MediaSource对象,MediaObject添加了MediaSource后,就可以通过play(),pause(),stop()来播放暂停音频了

可以用MediaSource::currentSource来查看当前播放的资源,当资源多时候,我们一般把他们放在QList中来统一管理,这样当我们设置播放某一首歌曲时候,可以用setCurrentSource(QList::at(index))来改变MediaObject的MediaSource

 

MediaObject调用了这些函数后,他的status就会改变,通过state()来获取他的状态,改变为对应的Phonon::PlayingState 播放状态  Phonon::StoppedState:停止状态   Phonon::PausedState:暂停状态

状态改变后信号stateChanged(Phonon::State,Phonon::State)就会被发射

 

当一个文件即将播放完之后,信号aboutToFinish()会被发射,在槽函数中我们可以用mediaObject->enqueue(MediaSource);来吧一个资源文件添加到他的播放队列中,然后当此首播放完后,就会自动播放下一首

同样当播放下一首,就是播放的文件改变时候,信号currentSourceChanged(Phonon::MediaSource)被发射,然后再槽函数中我们可以来设置QLCDNumber的现实为00:00

 

在播放过程中,MediaObject会每隔一段时间发射tick()信号,MediaObject::setTickInterval(int)来设置发射信号的间隔,一般都设置为1000,意思是1000毫秒,就是1秒来发射一次,在tick()的槽函数中,可以来刷心LCD现实的播放时间

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值