Das Dialogfeld "Video -Capture" wird immer wieder mit der eingebetteten PC -Webcam -Delphi -App angezeigt

StackOverflow https://stackoverflow.com/questions/4311578

Frage

Ich habe eine Delphi -App, die in Intervallen von 1 Sekunden Schnappschüsse aus einer Webcam enthält. Auf dem Entwicklungs-PC geht es gut, aber auf der Zielplattform (Atom-basierter Tablet-PC, das eingebettetes Windows 7 mit einer anderen Kamera ausführt) ist es extrem schuppig. Nach einem Neustart und beim ersten Ausführen der App gelingt es normalerweise, die Webcam OK zu initialisieren und reguläre Rahmen davon abzurufen. Wenn die App das nächste Mal ausgeführt wird, kann sie den Webcam -Treiber nicht finden und auch ein Dialog aufgetaucht Bitten Sie mich, die Videoquelle anzugeben, vermutlich, weil sie keine finden kann.

Meine Frage: Ich bin mir sicher, dass dies mit der Videoaufnahme -API -Aufrufe in Bezug auf die richtige Reihenfolge oder so zu tun hat, sondern ein Tool (wie Wireshark), das es mir ermöglicht, die API -Anrufe zu schnüffeln, damit ich vergleichen kann, was passiert Auf dem eingebetteten Windows 7 -System zum XP -Entwicklungssystem, das funktioniert?

Ich verwende die folgenden Anrufe/Nachrichten:

Initialisierung:

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

Auf 1 Sekunden Timer:

WM_CAP_SET_CALLBACK_FRAME
WM_CAP_GRAB_FRAME_NOSTOP

Auf Rückruf:

WM_CAP_SET_CALLBACK_FRAME (nil)

Im Finish:

WM_CAP_ABORT
WM_CAP_STOP
WM_CAP_DRIVER_DISCONNECT
War es hilfreich?

Lösung

Der erste Schritt ist viel einfacher: Haben Sie absolut sichergestellt, dass Sie denselben Treiber haben?

Es kann auch sein, dass die Abfolge des Erkennungsaufnahmes für dieses langsame System zu schnell ist. Sehen Sie, ob die Einführung einiger Sekunden im Schlaf zwischen den Hilfen hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top