Qt 5.2.0缺少相机服务

时间:2013-12-26 20:26:46

标签: c++ windows qt camera qtmultimedia

我有一台罗技高清网络摄像头C270。 我想写一个简单的网络摄像头应用程序,所以我尝试编译Qt摄像头示例(Qt \ Qt5.2.0 \ 5.2.0 \ msvc2010_opengl \ examples \ multimediawidgets \ camera)。

我的开发系统是Windows 7 x64 SP1虚拟机。如果网络摄像头连接到此VM,则示例运行良好。 Qt和Windows设备管理器将网络摄像头检测为“USB视频设备”。

当我尝试在非虚拟系统(也就是Win7 x64 SP1)上运行已编译的二进制文件时,应用程序会说“相机服务丢失”(是的,我将相机与虚拟机断开连接)。在此系统上,摄像机被检测为“Logitech HD Webcam C270 “

我还有第二台带有Win7 x64 SP1的笔记本电脑 - 这里也有同样的问题。

当我使用其他工具(dorgem.cvs.sourceforge.net/viewvc/dorgem/Dorgem/)测试网络摄像头时,我可以看到网络摄像头正常工作。

我该怎么做才能解决问题?

我错过了一些图书馆或第三方工具吗? Qt没有安装在我的“真实”系统上。 我将应用程序所抱怨的所有DLL复制到与exe文件相同的目录中:

icudt51.dll
icuin51.dll
icuuc51.dll
Qt5Cored.dll
Qt5Guid.dll
Qt5Multimediad.dll
Qt5MultimediaWidgetsd.dll
Qt5Networkd.dll
Qt5OpenGLd.dll
Qt5Widgetsd.dll
platforms/qwindowsd.dll

1 个答案:

答案 0 :(得分:0)

感谢FrankOsterfeld。他指出了我正确的方向。

我不得不将以下文件从Qt复制到我的应用目录:

Qt5.2.0\5.2.0\msvc2010_opengl\plugins\mediaservice\dsengined.dll
Qt5.2.0\5.2.0\msvc2010_opengl\plugins\mediaservice\qtmedia_audioengined.dll
Qt5.2.0\5.2.0\msvc2010_opengl\plugins\mediaservice\wmfengined.dll

Desination

MyAppDir\MyApp.exe
MyAppDir\(files from original post)
MyAppDir\mediaservice\dsengined.dll
MyAppDir\mediaservice\qtmedia_audioengined.dll
MyAppDir\mediaservice\wmfengined.dll

此链接帮助我找到了解决方案:

  

“与用户插件相比,Qt插件必须放入与插件类型匹配的子目录中。由于我们要部署windows平台插件,因此必须将其放入”平台“子目录中。”