Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Webcam (https://www.delphipraxis.net/153297-webcam.html)

MiniMax 28. Jul 2010 11:31

Webcam
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich benutze z.Z. folgenden Code um eine Webcam anzeigen zu lassen:

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ExtCtrls,Windows, Messages,StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

  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;

  WM_CAP_DLG_VIDEOFORMAT         = WM_USER+41;
  WM_CAP_DLG_VIDEOSOURCE         = WM_USER+42;
  WM_CAP_DLG_VIDEOCOMPRESSION    = WM_USER+46;

  WM_CAP_STOP         = (WM_User+ 68) ;
  WM_CAP_DRIVER_DISCONNECT  = (WM_User+ 11) ;
implementation

function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

var handle22:THandle;
begin
  handle22 := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 640,480, panel1.Handle, 1);
  SendMessage(handle22, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(handle22, WM_CAP_SET_PREVIEWRATE, 1, 0);//bildrate = 1
  sendMessage(handle22, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(handle22, wm_cap_set_preview, 1, 0);
  Application.ProcessMessages;
end;

procedure TForm1.Button1Click(Sender: TObject);
var handle22:THandle;
begin
  handle22 := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 640,480, panel1.Handle, 1);
  SendMessage(handle22, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(handle22, WM_CAP_SET_PREVIEWRATE, 1, 0);
  sendMessage(handle22, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(handle22, wm_cap_set_preview, 1, 0);
  Application.ProcessMessages;
   SendMessage(handle22, WM_CAP_DRIVER_DISCONNECT, 0, 0);

end;




initialization
  {$I unit1.lrs}

end.
Nun möchte ich aber z.B. das bild Aufzeichen auf befehl in einem definierbaren videoformat (wenn möglich)
Was ich auch habe, ist ein Code liste, die ich aber net verwenden kann weil ich net weis wie (sendmassage is klar aber wie gehts weiter) und ich muss immer Das WM_CAP_START in WM_User umbennen sonst geht es net (habe ich vergesen eine Unit einzubinden?) Oder gibt es eine Fertige video Unit?

Ich bitte um eure Hilfe!

MiniMax 28. Jul 2010 20:16

AW: Webcam
 
Keiner eine Idee?

SirThornberry 28. Jul 2010 21:28

AW: Webcam
 
Es sind noch nicht einmal 12 Stunden vergangen. Bitte habe etwas Geduld und unterlasse das Pushen innerhalb von 24 Stunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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