![]() |
WebCam - TVideoCap ?
Moin Moin
inzwischen bin ich bei dem Schritt angekommen eine Webcam mit einzubinden in mein Programm, durch die Suche über Google bin ich auf das Stichwort TVideoCap gekommen welches auch mit D5 funktionieren soll Leider Hilft mir die Suche hier und auch bei Google nach TVideoCap nicht weiter die HP vom Autor (wenn es die richtige war) ist nicht mehr erreichbar: ![]() Gibt es da noch andere Möglichkeiten ein Webcambild in sein Programm zu zaubern und an einem Port zur Verfügung zu stellen ? |
Re: WebCam - TVideoCap ?
Bei indy gibts so ne kompo daför funzt wunderbar
|
Re: WebCam - TVideoCap ?
Nennst Du mir auch nopch den Namen und gibst nen paar kleine Hinweise ?
Indy hat leider keine OH :( |
Re: WebCam - TVideoCap ?
hi,
bei indy gibts so eine komponente garantiert nicht - da gibts nur internet-komponenten. bei der ![]() aenogym |
Re: WebCam - TVideoCap ?
thx für die Infos, nun heißt es fumeln um da was hinzubekommen da es leider keine wirkliche Hilfe dazu gibt :(
also Google spuckt nichts aus falls jemand schon mal eine Cam eingebunden hat wäre ich für Infos darüber sehr dankbar ;) |
Re: WebCam - TVideoCap ?
Moin Nisbo,
du brauchst dafuer die WM_CAP_*-Messages. Ein Beispiel wie du damit arbeiten kannst findest du u.a ![]() Demo-App gibts keine, damit Robert_G nichts mehr sagen kann ;) Greetz alcaeus |
Re: WebCam - TVideoCap ?
Hi,
Zitat:
![]() Gruß Stephan :dance: |
Re: WebCam - TVideoCap ?
ok nach etwas suche findet man auch zu JVCL beispiele:
![]() |
Re: WebCam - TVideoCap ?
CamAnzeige funktioniert jetzt, auch der Server als ServerSocket1 nimmt verbindungen an
Delphi-Quellcode:
wenn ich jetzt per Browser auf meine IP und Port 8888 verbinde erscheint auf die Message Verbunden bzw beim Trennen "Verbindung getrennt"
procedure TForm1.BitBtn1Click(Sender: TObject);
begin ServerSocket1.Active := false; ServerSocket1.Port := StrToIntDef(Edit4.Text,8888); // Port 8888 ist Standard try ServerSocket1.Active := true; except raise; end; if ServerSocket1.Active then begin // noch nichts end; end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin showmessage('Verbunden'); end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin showmessage('Verbindung getrennt.'); end; Jetzt stellt sich nur die Frage wie ich dem browser jetzt einen Frame von der Webcam schicke. Dort nutze ich TJvAVICapture als Anzeige des WebCamBildes Jemand eine Idee ? |
Re: WebCam - TVideoCap ?
ich werde hier noch verrückt, ich bekomme es jetzt nichtmal hin ein einfaches Bild zu senden :(
dafür habe ich dieses Code den ich durch die Suche gefunden habe benutzt:
Delphi-Quellcode:
mein Programm rufe ich über den Browser auf, also IP:Port/bild.jpg
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var fsWork : TFileStream; sBuffer : String; begin fsWork := TFileStream.Create('C:\bild.jpg', fmOpenRead); sBuffer := StringOfChar(#0,fsWork.Size); fsWork.Seek(0, soFromBeginning); Socket.SendStream(fsWork); end; wie gesagt der aufruf wird erkannt, auch wenn ich im Browser auf abbrechen gehe wird es erkannt, siehe code oben mir wurde bei meiner ganzen testerei auch schon mal das bild angezeit, einmal ganz und dann mehrmals nur teilweise denke mal das ich zuerst dieses Problem lösen muß um dann die sache mit dem Einzelbild aus dem CamBild umzusetzen hoffe es kann mir jemand helfen ;) EDIT: jetzt habe ich rausbekommen wie man zumindest etwas vom Bild bekommt, warum auch immer ist mir nicht klar aber als ich auf den Server starten Button geklickt habe welcher diesen Code ausführt:
Delphi-Quellcode:
kam ein Bild im Browser an, allerdings nur ca 2/3 vom Bild
procedure TForm1.BitBtn1Click(Sender: TObject);
begin ServerSocket1.Active := false; ServerSocket1.Port := StrToIntDef(Edit4.Text,8888); // Port 8888 ist Standard try ServerSocket1.Active := true; except raise; end; if ServerSocket1.Active then begin // noch nichts // showmessage('Server gestartet!'); end; end; also habe ich mir einen sleep(100) mit eingebaut, ohne den gehts nicht, k.a. warum nicht und danach einen ButtonClick simuliert
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var fsWork : TFileStream; sBuffer : String; begin fsWork := TFileStream.Create('C:\polauto.jpg', fmOpenRead); sBuffer := StringOfChar(#0,fsWork.Size); fsWork.Seek(0, soFromBeginning); Socket.SendStream(fsWork); sleep(100); BitBtn1.Click; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz