https://github.com/zytc2009/BigTeam_learning
分类: C/C++
2010-03-25 15:48:47
原文地址 :http://lizzy115.blog.163.com/blog/static/364919582009101045415922/
Phonon是什么?Qt从4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。
很多人听了很高兴:我的毕业设计有谱了!我正做嵌入式播放器呢!这下什么事都解决了,Qt自带了呢!
先别高兴太早,看下图了解Qt给我们的Phonon到底是怎么样个东西?
双击图片可留言~
看完上图,你就可以知道,应用Phonon框架实质上分为4个部分,你的程序,Phonon库,Phonon后端插件(phonon_backend),真正的后端。
Phonon其实什么都不干,他只是提供了一套API接口,这套接口可以给你的程序调用,同时也是给编写后端插件提供一个规范。程序完全不知道最后谁来放我的Mp3,谁来解码我的视频,播放的又是哪个设备。
同样,Phonon库也不知道,他只管搜索符合自己规范的插件。并告诉这些插件,现在程序发出的指令是什么,从插件返回给程序现在的媒体状态和信息。
而后端才是实际进行读入媒体、解码并且播放的部分,他们和后端插件是一一对应的。后端可以是任何形式,只要你写出了相应的后端插件。
所以,你要使用Phonon必需要先做3件事:
如果你是MinGW用户,那抱歉了,Windows下Qt只提供了DirectShow这个后端插件,而这个后端插件因为调用了DX的SDK,所以只能由VC编译。当然你其实有更好的选择,比如这个插件,通过他,你可以将mplayer作为你的后端,彻底抛弃臃肿的VS以及读ID3v2都会出错的DirectShow(其实也不能怪DirectShow,DirectShow同样只是个框架,解码还靠系统里安的解码器、滤镜们,我用的播放器都太绿色了,于是DirectShow就很弱)
以上3点做完,你就可以拿demo里那个mediaplayer去测试了,测试成功的话,你就可以非常容易的用Qt实现你自己的媒体回放了。想要更高级的操作,比如编码、混音、储存媒体文件?呵呵,等Phonon慢慢更新吧,现在来说,Phonon还只是个什么都不能干的传声筒。