我有一个Delphi应用程序,该应用以1秒的间隔从网络摄像头中获取快照。在开发PC上,它可以很好,但是在目标平台(基于原子的平板电脑PC运行带有不同摄像机的嵌入式Windows 7))非常片状。重新启动并首次运行应用程序后,它通常设法初始化网络摄像头确定并从中获得常规帧,但是下次运行应用程序时,它无法找到网络摄像头驱动程序,并且还弹出了一个对话框。要求我指定视频源,大概是因为它找不到。

我的问题:我敢肯定这与视频捕获API调用不正确有关,但是是否有工具(例如Wireshark)可以使我嗅探API调用,因此我可以比较正在发生的事情在嵌入式Windows 7系统上,可以使用XP开发系统?

我正在使用以下电话/消息:

初始化:

capCreateCaptureWindow
WM_CAP_DRIVER_CONNECT
WM_CAP_SET_PREVIEW (false)
WM_CAP_SET_VIDEOFORMAT (as camera after boot is in format I can't handle)
WM_CAP_GET_VIDEOFORMAT

在1秒计时器:

WM_CAP_SET_CALLBACK_FRAME
WM_CAP_GRAB_FRAME_NOSTOP

在回调:

WM_CAP_SET_CALLBACK_FRAME (nil)

完成:

WM_CAP_ABORT
WM_CAP_STOP
WM_CAP_DRIVER_DISCONNECT
有帮助吗?

解决方案

第一步要容易得多:您是否绝对确定自己有相同的驱动程序?

对于此缓慢的系统而言,检测的顺序可能太快了。看看在介于两者之间引入几秒钟的睡眠是否有帮助

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top