我有一个 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