当QtMultimedia的QCamera类在XP系统无法获取到摄像头设备,需要重新修改编译qtmultimedia库,将编译生成的dsengine.dll文件替换原来的dsengine.dll库文件。
开发环境:win7 64位+qt5.7.1+vs
具体步骤如下:
1. 到官网去下载qtmultimedia这个模块的源码qtmultimedia-opensource-src-5.7.1.zip,然后解压到非中文路径。
2. 打开qtmultimedia-opensource-src-5.7.1\src\plugins\plugins.pro
将config_wmf:SUBDIRS+=wmf注释掉,出下图所示:
3.打开qtmultimedia-opensource-src-5.7.1\src\plugins\directshow\directshow.pro
将!config_wmf:include(player/player.pri)注释掉,并改为
include(player/player.pri),如下图所示:
4. 用qtcreator,打开directshow.pro,重新编译,在配置的输出目录的\plugins\mediaservice目录下生成了好多音视频相关库,如下图:
然后从下图找到dsengined.dll库,将自己工程中原来的dsengined.dll库替换掉,这样摄像头就可以正常使用了。
注意:如果没有配置编译输出路径的话,可能会输出到你的C盘目录下,如下图所示: