当用qml的MediaPlayer在XP系统下播放视频时,会报错:QtMultimedia : defaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.mediaplayer”. 这时需要修改源码重新编译Qt的QtMultimedia模块,使用重新生成的dsengine.dll库。
步骤如下:
1. 到官网去下载qtmultimedia这个模块的源码(注意:不用把整个sdk都下载,因为qt提供了下载单个模块下qtmultimedia-opensource-src-5.2.0.zip),大概6M左右,进行解压。
2. 打开qtmultimedia-opensource-src-5.2.0\src\plugins\plugins.pro
删除 config_wmf: SUBDIRS += wmf
3. 打开qtmultimedia-opensource-src-5.2.0\src\plugins\directshow\directshow.pro
将!config_wmf: include(player/player.pri)
改为:
include(player/player.pri)
4. 打开directshow.pro,重新编译,在配置的输出目录的\plugins\mediaservice目录下生成了好多音视频相关库,如下截图:
找到dsengined.dll库,将自己工程中原来的dsengined.dll库替换掉。
注意:如果没有配置编译输出路径的话,可能会输出到你的C盘目录下(本人用的QtCreator编译的)。
※不想自己手动编的朋友,可以直接用本人编的库,下载即可用※
获取本人编的整个模块输出库,请点击:
http://download.csdn.net/detail/shado_walker/9741942
可以根据自己需要进行使用☺