Форум: "Media";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизЗахват видеоизображения Найти похожие ветки
← →
suharew (2006-05-05 00:10) [0]Добрый день. Нашел в нете нижеследующий кусок кода, который захватывает изображение с устройства и выводт его на форму, Все вроде работает нормально. В данном случае у меня захват идет с ТВ тюнера, А если у меня несколько устройств. Например Тв тюнер,Веб камера, Плата видеомондажа Pinnacle Dc10, как мне переключаться между этими устройствами?? Подскажите пожалуста.
const
WM_CAP_START = WM_USER;
WM_CAP_STOP = WM_CAP_START + 68;
WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
WM_CAP_EDIT_COPY = WM_CAP_START + 30;
WM_CAP_DLG_VIDEOSOURCE = (WM_CAP_START+ 42);
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.BClick(Sender: TObject);
begin
if B.Caption = "Start" then
begin
hWndC := capCreateCaptureWindowA("My Own Capture Window",
WS_CHILD or WS_VISIBLE ,
0,
0,
352,
288,
Form1.Handle,
0);
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
B.Caption := "Stop";
Timer1.Enabled := True;
end;
end else
begin
B.Caption := "Start";
Timer1.Enabled := False;
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
hWndC := 0;
end;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var s : string;
begin
if (hWndC <> 0) then
begin
SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
end;
end;
← →
medved_68 © (2006-05-05 16:29) [1]Попробуй так
procedure TVideoForm.FormCreate(Sender: TObject);
var
i: integer;
Device: TMenuItem;
begin
SysDev:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
if SysDev.CountFilters > 0 then
for i := 0 to SysDev.CountFilters - 1 do
begin
Device := TMenuItem.Create(Devices);
Device.Caption := SysDev.Filters[i].FriendlyName;
Device.Tag := i;
Device.OnClick := OnSelectDevice;
Devices.Add(Device);
end;
end;
Кстати пример из DSPak поставь его у себя и плюнь на VMF
← →
suharew (2006-05-05 19:45) [2]Да, DSPACK лучше , уже поставил теперь разбираюсь.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c