qt4.8.6 基于Phonon的播放器无法播放acc等音频文件解决方法

对于Qt多媒体应用开发,主要使用Phonon多媒体框架。但是受制于框架的设计,实际的多媒体功能都由后端(Backends)来实现,Phonon框架本身不提供多媒体资源的编码和解码。对于Windows平台而言,Phonon框架支持的插件是DirectShow,其只能支持一部分多媒体类型,对于常用的mp4、rmvb,手机上的acc等格式都不予支持。
针对上述问题,网上找到的方法是改用功能强大的 MPlayer 播放器作为后端,以便Qt应用程序支持更多的媒体类型。
这个轮子前辈已经造好了,我就直接拿来用了,由于我这个是在window下使用,我是在 vs 工程里面生成所需的库文件。
下面简单介绍下使用方法:

一、下载 phonon-mplayer

https://download.csdn.net/download/qiangzi4646/10319719

二、编译生成mplayer.lib 、phonon_mp.dll、phonon_mp.lib
  1. 先导入phonon-mplayer\libmplayer\libmplayer.pro 至VS工程,自动生成工程 mplayer,编译成功后产生 mplayer.lib 留作备用。
  2. 再导入 phonon-mplayer\phonon_mp.pro 至VS工程,自动生成工程 phonon_mp,将上一步产生的 mplayer.lib 拷贝至工程所在目录,编译会报错,修改所有包含的 libmplayer 文件夹中头文件的路径,从<>改成 “”。编译成功后产生 phonon_mp.dll 和 phonon_mp.lib>。
  3. 将 phonon_mp.dll 和 phonon_mp.lib 拷贝至C:\Qt\4.8.6\plugins\phonon_backend(如果你的qt默认安装的话,否则在你自定义的qt安装目录下找) 文件夹下,并【删除默认的 phonon_ds94.dll 和 honon_ds94.lib
  4. 至此 phonon 的mplayer的后端插件部署完成。
  5. 最后重新编译调用 phonon 框架的播放器(也就是你的qt工程)即可,不用另外做其他修改。则可以播放 acc 等其他扩展的视频音频文件了。

使用Phonon播放:

        //新建多媒体对象
        Phonon::MediaObject *pMediaObject = new Phonon::MediaObject(this);
        Phonon::MediaSource source(strFilePath);//设置播放文件路径
        pMediaObject->setCurrentSource(source);
        pMediaObject->play();//播放

猜你喜欢

转载自blog.csdn.net/qiangzi4646/article/details/79769631