AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Webcam Code mehrmals ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Webcam Code mehrmals ausführen

Ein Thema von Larsi · begonnen am 3. Feb 2008 · letzter Beitrag vom 4. Feb 2008
Antwort Antwort
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Webcam Code mehrmals ausführen

  Alt 3. Feb 2008, 16:59
hi,
in der codelib gibt es ja folgenden code:
Delphi-Quellcode:
//Zuerst brauchst du folgende Konstanten
const
  WM_CAP_DRIVER_CONNECT = WM_USER + 10;
  WM_CAP_EDIT_COPY = WM_USER + 30;
  WM_CAP_SET_PREVIEW = WM_USER + 50;
  WM_CAP_SET_OVERLAY = WM_USER + 51;
  WM_CAP_SET_PREVIEWRATE = WM_USER + 52;

implementation

{$R *.dfm} 

//Dann brauchst du noch das hier
function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLLname 'capCreateCaptureWindowA';

procedure TForm1.LaberLaber; //halt irgendne Prozedur, ich habs im Formcreate, damit ich gleich was seh ^^
var handle:THandle;
begin
  handle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 320, 240, Panel1.Handle, 1); //Wie du siehst, brauchst du ein Panel in diesem Beispiel ;-)
  SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(handle, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(handle, wm_cap_set_preview, 1, 0);
end;

Aber wenn man dass in ne timer prozedur tue, dann ist angeblich schon irgendnein videotreiber verwendet. (verständlich, weil ich ja zweimal auf das gleiche zugriefen will, oda?)

meine frage ist jetzt wie ich das so mache dass es wieder so geht wie beim ersten mal nach dem zweiten mal . gibts irgendein Driver Disconnect was ich verwenden kann, hab das hier irgendwo mal gelesen, also mit dem diconnecten.

Ich habe es ja auch schon so ausprobiert:
SendMessage(handle, WM_CAP_DRIVER_DISCONNECT, 0, 0); bzw. dann in const auch dass:
WM_CAP_DRIVER_DISCONNECT = WM_USER + 10; aber wenn der code das zweite mal läuft kommt die gleiche meldung!!!

Der Fehler ist jetzt als png datei im anhang!
MFG Lars Wiltfang


Noch ne kleine Frage die grad aufkommt: Wie kann man das ganze schneller machen
Miniaturansicht angehängter Grafiken
screenshot_591.png  
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Webcam Code mehrmals ausführen

  Alt 3. Feb 2008, 17:28
Welcher Code genau wird im Timer ausgeführt? capCreateCaptureWindow darfst du nur einmal ausführen.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Webcam Code mehrmals ausführen

  Alt 3. Feb 2008, 17:30
Zitat von Larsi:
...Aber wenn man dass in ne timer prozedur tue, ...
Hai Larsi,

warum soll der Code denn in einem Timer laufen? Es wird doch eine Videostream angezeigt und nicht immer ein einzelnes Bild aufgenommen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#4

Re: Webcam Code mehrmals ausführen

  Alt 3. Feb 2008, 17:33
Zitat von Larsi:
Ich habe es ja auch schon so ausprobiert:
SendMessage(handle, WM_CAP_DRIVER_DISCONNECT, 0, 0); bzw. dann in const auch dass:
WM_CAP_DRIVER_DISCONNECT = WM_USER + 10; aber wenn der code das zweite mal läuft kommt die gleiche meldung!!!
Das ist klar.

WM_USER + 10 ist ja schon connect. Du schickst also den gleichen Befehl (Verbinden), nur benutzt Du dafür einen anderen Namen der Konstante.

Du müsstest rausfinden, welcher Wert (anstelle von 10 = connect) für Disconnect (auf gut glück geraten: die 20 ist noch nicht definiert - das könnte also sein) steht, und den dann benutzen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Webcam Code mehrmals ausführen

  Alt 3. Feb 2008, 17:40
Delphi-Quellcode:
WM_CAP_START = WM_USER;
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
Thomas
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Webcam Code mehrmals ausführen

  Alt 4. Feb 2008, 07:13
oh wusste gar nicht das dass n livestream is^^ dachte das macht nur bilder hat sich jetzt alles geklärt!
MFG Lars Wiltfang
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz