2010-11-30 50 views
2

我有一個delphi應用程序,以1秒的間隔從網絡攝像頭拍攝快照。在開發PC上它很好,但在目標平臺(基於Atom的平板電腦上運行帶有不同相機的嵌入式Windows 7)時,它非常薄弱。重新啓動後,第一次運行應用程序時,它通常會初始化網絡攝像頭並從中獲取常規幀,但下次運行該應用程序時,無法找到網絡攝像頭驅動程序,並且會彈出一個對話框請求我指定視頻源,大概是因爲它找不到一個..視頻捕捉對話框不斷彈出與嵌入式PC攝像頭德爾菲應用程序

我的問題:我確定這與視頻捕獲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 
+0

這個問題還不清楚。您是問如何讓驅動程序選擇更可靠,還是您問如何監控API調用?這是兩個完全不同的問題,如果你想詢問兩者,那麼你應該寫多個帖子。接受答案中的哪些問題能夠解決? – 2010-12-01 02:47:03

+0

馬可提出延遲(或實際上,延遲和重試)的建議使駕駛員選擇更加可靠。 – rossmcm 2010-12-01 09:23:58

回答

0

第一步比較容易:您是否確定自己擁有相同的驅動程序?

也可能是這個緩慢系統的檢測 - 開始採集的序列太快。看看引入幾秒睡覺之間有幫助