1

我有一个罗技高清网络摄像头 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/) 测试网络摄像头时,我可以看到网络摄像头可以工作。

我能做些什么来解决这个问题?

我错过了一些图书馆或第 3 方工具吗?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
4

1 回答 1

0

感谢弗兰克奥斯特菲尔德。他给我指出了正确的方向。

我必须将以下文件从 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

目的地

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

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

“与用户插件相比,Qt 插件必须放在与插件类型匹配的子目录中。因为我们要部署 Windows 平台插件,所以它必须放在“平台”子目录中。”

于 2013-12-26T22:15:55.463 回答