解决Qt5.3.1不能播放mp4以及其它格式的问题



     环境: 
             Qt5.3.1(msvc2010)   
             creator3.2  
             XP系统(32位)
   
     刚刚装好的Qt5.3.1不要说播放视频,连mp3等格式的音频都播放不了。编译会提示:
   
QtMultimedia : defaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.mediaplayer”


      我们首先打开X:\Qt\Qt5.3.1\5.3\msvc2010_opengl\plugins\mediaservice,发现有一个wmfengine.dll
在里面,具体WMF我也不清楚是什么,只知道因为它,导致dsengine.dll只提供照相/录像(camera)支持,而
不提供播放器支持。所以需要自己重新编译dsengine.dll这个出来。下面就主要介绍怎么去编译。


  首先,我们到官网去下载qtmultimedia这个模块的源码,不用把整个sdk都下载,因为qt提供了单个模块下
载。下载地址:点击打开链接
  
  我下载到的是qtmultimedia-opensource-src-5.3.1.zip,就只有5M而已。把它解压到非中文路径里面。找
到里面plugins.pro文件,把下面那一句删掉。
  config_wmf: SUBDIRS += wmf
       然后找到directshow.pro文件,把里面的
!config_wmf: include(player/player.pri)
  改成
include(player/player.pri)
   修改完成后,用QtCreator打开directshow.pro,直接编译,大概45秒就编译好了,把编译好的dll和lib分别放到相应的位置就算解决了刚开始编译出的问题。


   但是问题还没有解决,能否播放视频主要取决于系统里面的window media player所支持的视频格式,正常来说只能播放avi格式,但是在程序里面只有声音没有图像。所以我们要安装解码器。在这里推荐两款解码。
    第一款是国产的:完美解码  官方下载地址:http://jm.wmzhe.com/
    第二款是国外的:K-Lite Codec Pack 官方下载地址:http://www.codecguide.com/
    安装完之后就能正常播放了,两款我都用过,感觉第二款更加好,主要有两方面,一方面体积比第一款小2倍,但是里面的解码器种类很多。另一方面是运行程序的时候第二款视频出现的时间更快。所以推荐下载第二款。


你可能感兴趣的:(Qt之零碎笔记)