Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
4-1100189391
Dominus
2004-11-11 19:09
2004.12.26
Раскладка клавиатуры


1-1102921992
KEBZ
2004-12-13 10:13
2004.12.26
Memo


1-1102817239
Muhan
2004-12-12 05:07
2004.12.26
Как текст выделить как ссылку?


3-1101219425
Skywalker
2004-11-23 17:17
2004.12.26
Как выбрать из базы определенной количество записей?


1-1102973598
Ольга
2004-12-14 00:33
2004.12.26
MessageBox или Application.MessageBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский