Qt开发 中标麒麟系统无法播放视频

  • A+
所属分类:Qt专栏

phonon框架原理

Qt通过phonon来实现跨平台的多媒体播放,多媒体文件的播放主要过程包括:文件读取、分流、解码、输出,这些在不同的系统中实现方式不同,如windows下的DirectX、Linux下的 gstreamer或xine及Mac下的QuickTime。 而Qt中的phonon作为跨平台的多媒体解决方案,就因该为用户屏蔽掉这些差异。而实际上它做得还不够好,因为用户还需要自己来安装相应的后端插件来完成播放任务。参考网站:https://www.cnblogs.com/yc_sunniwell/archive/2010/07/01/1769163.html

Qt开发 中标麒麟系统无法播放视频

看完上图,你可以知道,应用Phonon框架实质上分4个部分,你的程序,Phonon库,Phonon后端插件(phonon_backend),真正的后端。 Phonon其实什么都不干,他只是提供了一套API接口,这套接口可以给你的程序调用,同时也是给编写后端插件提供一个规范。程序完全不知道最后谁来放我的Mp3,谁来解码我的视频,播放的又是哪个设备。
同样,Phonon库也不知道,他只管搜索符合自己规范的插件。并告诉这些插件,现在程序发出的指令是什么,从插件返回给程序现在的媒体状态和信息。而后端才是实际进行读入媒体、解码并且播放的部分,他们和后端插件是一一对应的。后端可以是任何形式,只要你写出了相应的后端插件。

标麒麟系统无法播放视频解决方案

方法一:

安装phonon-mplayer后端插件,程序中通过phonon框架,调用phonon-mplayer后端插件,进而调用mplayer来实现麒麟系统下的视频播放,这种方式基于phonon框架,可以实现代码的跨平台,推荐此法。

1、进入Qt安装目录,找到plugins/phonon_backend/目录,并建立一个空的不带后缀的文件,文件名为config

2、下载phonon-mplayer源码,将源码中mplayer/libmplayer/MPlayerConfig.cpp下的QString defaultMPlayerConfigPath改成刚刚创建的config文件的目录

Qt开发 中标麒麟系统无法播放视频

3、进入phonon-mplayer源码的mplayer目录,找到phonon_mplayer.pro,用qt creator打开,并编译

4、在编译生成的**Debug**/phonon_backend目录下,找到libphonon_mplayer.so,复制到Qt安装目录的plugins/phonon_backend/下,和config文件同级,同时删除其他so文件

5、打开test工程,修改pro文件中的LIBS属性和main函数中的视频路径,运行代码,即可成功播放视频

方法二:

安装mplayer播放器软件,程序中直接调用mplayer播放器来播放视频,这种方法绕过了phonon框架,因此,代码无法实现跨平台,如果换到windows平台,则需要修改代码。

1、下载mplayer源码,并进行安装(①./configure②make③make install)

2、找到安装后的mplayer共享库(whereis命令),注意是共享库,不是可执行程序

3、运行vedioP工程,将main函数中的mplayer路径改上一步骤中的路径,并修改视频路径,即可播放视频。

免费下载(包含phonon-mplayer,mplayer源码)

链接:https://pan.baidu.com/s/14id_noSeOjYMBFwPYek8Ag

提取码:ppdd

 

  • 我的微信
  • weinxin
  • 微信公众号
  • weinxin
阿拉灯aladeng

发表评论

您必须才能发表评论!