Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

Проблема с видеозахватом...   Найти похожие ветки 

 
Submarine   (2004-09-24 09:33) [0]

Привет всем. Суть проблемы необходимо сделать видеозахват с камеры (неважно какой).Тут везде рекомендуют пакет DSPak, скачал, но проблема при установке не создается файл DirectX9_D7.bpl.
При использовании др. проги (ниже ее код) пишет что данное устройство уже занято. Подскажите плиз решение проблемы, или скинте файлик DirectX9_D7.bpl(или DirectX9_D5.bpl ) на мыло
OpenVideo: TButton;
   Panel1: TPanel;
   CloseVideo: TButton;
   GrabFrame: TButton;
   SaveBMP: TButton;
   StartAVI: TButton;
   StopAVI: TButton;
   OpenDialog1: TOpenDialog;
   SaveDialog1: TSaveDialog;
   procedure FormCreate(Sender: TObject);
   procedure OpenVideoClick(Sender: TObject);
   procedure CloseVideoClick(Sender: TObject);
   procedure GrabFrameClick(Sender: TObject);
   procedure SaveBMPClick(Sender: TObject);
   procedure StartAVIClick(Sender: TObject);
   procedure StopAVIClick(Sender: TObject);

 private
   { Private declarations }
    hWndC : THandle;
   CapturingAVI : bool;
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
  const WM_CAP_START                  = WM_USER;
  const WM_CAP_STOP                   = WM_CAP_START + 68;
  const WM_CAP_DRIVER_CONNECT         = WM_CAP_START + 10;
  const WM_CAP_DRIVER_DISCONNECT      = WM_CAP_START + 11;
   const WM_CAP_SAVEDIB                = WM_CAP_START + 25;
    const WM_CAP_GRAB_FRAME             = WM_CAP_START + 60;
   const WM_CAP_SEQUENCE               = WM_CAP_START + 62;
   const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START +  20;

{$R *.dfm}
function capCreateCaptureWindowA(lpszWindowName : PCHAR;
                                dwStyle : longint;
                                x : integer;
                                y : integer;
                                nWidth : integer;
                                nHeight : integer;
                                ParentWin  : HWND;
                                nId : integer): HWND;
                                STDCALL EXTERNAL "AVICAP32.DLL";
procedure TForm1.FormCreate(Sender: TObject);
begin
  CapturingAVI := false;
 hWndC := 0;
 SaveDialog1.Options :=
   [ofHideReadOnly, ofNoChangeDir, ofPathMustExist]
end;
procedure TForm1.OpenVideoClick(Sender: TObject);
begin
 hWndC := capCreateCaptureWindowA("My Own Capture Window",
                                  WS_CHILD or WS_VISIBLE ,
                                  Panel1.Left,
                                  Panel1.Top,
                                  Panel1.Width,
                                  Panel1.Height,
                                  Form1.Handle,
                                  0);
//  if hWndC <> 0 then
//    SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
end;
procedure TForm1.CloseVideoClick(Sender: TObject);
begin
if hWndC <> 0 then begin
   SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
  hWndC := 0;
 end;
end;
procedure TForm1.GrabFrameClick(Sender: TObject);
begin
if hWndC <> 0 then
   SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
end;
procedure TForm1.SaveBMPClick(Sender: TObject);
begin
if hWndC <> 0 then begin
   SaveDialog1.DefaultExt := "bmp";
   SaveDialog1.Filter := "Bitmap files (*.bmp)|*.bmp";
   if SaveDialog1.Execute then
     SendMessage(hWndC,
                 WM_CAP_SAVEDIB,
                 0,
                 longint(pchar(SaveDialog1.FileName)));
 end;
end;
procedure TForm1.StartAVIClick(Sender: TObject);
begin
 if hWndC <> 0 then begin
   SaveDialog1.DefaultExt := "avi";
   SaveDialog1.Filter := "AVI files (*.avi)|*.avi";
   if SaveDialog1.Execute then begin
      CapturingAVI := true;
      SendMessage(hWndC,
                  WM_CAP_FILE_SET_CAPTURE_FILEA,
                  0,
                  Longint(pchar(SaveDialog1.FileName)));
      SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
   end;
 end;
end;
procedure TForm1.StopAVIClick(Sender: TObject);
begin
if hWndC <> 0 then begin
   SendMessage(hWndC, WM_CAP_STOP, 0, 0);
   CapturingAVI := false;
 end;


 
Ozone ©   (2004-09-24 10:50) [1]

В какой момент говорит? Когда окно создаешь?


 
Submarine   (2004-09-24 12:16) [2]

Когда открываю видео, т.е. запуск процедуры
procedure TForm1.OpenVideoClick(Sender: TObject);
begin
hWndC := capCreateCaptureWindowA("My Own Capture Window",
                                 WS_CHILD or WS_VISIBLE ,
                                 Panel1.Left,
                                 Panel1.Top,
                                 Panel1.Width,
                                 Panel1.Height,
                                 Form1.Handle,
                                 0);
if hWndC <> 0 then
   SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
end;


 
WondeRu ©   (2004-09-24 17:03) [3]

Submarine   (24.09.04 9:33)
но проблема при установке не создается файл DirectX9_D7.bpl.

криво ставишь!
Delphi 5,6 & 7

1 - Add this paths to your search directory:
      - (DSPackDir)\src\Directx9
      - (DSPackDir)\src\DSPack

2 - Compile DirectX 9 Package (DirectX9_Dx.dpk) from the "packages" directtory.

3 - Compile DSPack Package (DSPack_Dx.dpk) from the "packages" directory.

4- Install Design Package (DSPackDesign_Dx.dpk) from the "packages" directory.


все по-русски ж написано!
сначала копируй все содержимое архива DSPack в любую папку, лучше в <Delphi>\Lib\DSPack потом

1. меню Tools/environment options//library //library path - здесь добавляешь указанные пути!
2. жмем Open потом выбираем DirectX9_D7.dpk, жмем Compile
3.жмем Open потом выбираем  DSPack_D7.dpk, жмем Compile
4.жмем Open потом выбираем  DSPackDesign_D7.dpk, жмем Compile потом Install

все...


 
Submarine   (2004-09-27 08:32) [4]

Да ты прав WondeRu ©   криво ставил, но не в этом дело, разобрался уже. На самом деле все проги работают и та, что привел код и с помощью DSPak. Проблема была с устройством видеозахвата Pinecle.

Ну все тему можно закрыть..



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
1-1102587453
Dmitrij_K
2004-12-09 13:17
2004.12.26
DLL


6-1097421215
Delphis
2004-10-10 19:13
2004.12.26
Поиск сервера


14-1102490694
AlexG
2004-12-08 10:24
2004.12.26
Важно ваше мнение!


4-1100249178
Ugrael
2004-11-12 11:46
2004.12.26
Смена обоев на рабочем столе.


1-1102619226
LedWorm
2004-12-09 22:07
2004.12.26
Копирование в буфер