2

我有一个 delphi 应用程序,它以 1 秒的间隔从网络摄像头拍摄快照。在开发 PC 上它运行良好,但在目标平台(基于 Atom 的平板电脑,运行嵌入式 Windows 7 和不同的摄像头)上非常不稳定。重新启动并第一次运行应用程序后,它通常会设法初始化网络摄像头 OK 并从中获取常规帧,但下次运行应用程序时,它无法找到网络摄像头驱动程序,并且还会弹出一个对话框让我指定视频源,大概是因为找不到..

我的问题:我确定这与视频捕获 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
4

1 回答 1

0

第一步要容易得多:你确定你有相同的驱动程序吗?

也可能是检测 - 开始采集的顺序对于这个慢速系统来说太快了。看看在两者之间引入几秒钟的睡眠是否有帮助

于 2010-11-30T07:58:44.197 回答