求AnyQ控件中VideoDisp, Videocap在delphi中的使用方法 ( 积分: 75 )

  • 主题发起人 主题发起人 tswhq
  • 开始时间 开始时间
T

tswhq

Unregistered / Unconfirmed
GUEST, unregistred user!
本人对多媒体不太懂,请大家看下面的程序.
 
本人对多媒体不太懂,请大家看下面的程序.
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, VideoDisp, Videocap,vfw, Sockets, ACMWaveOut,
ACMWaveIn;

type
TForm1 = class(TForm)
VideoCap: TVideoCap;
VideoDisp: TVideoDisp;
btnStart: TButton;
procedure btnStartClick(Sender: TObject);
procedure VideoCapVideoStream(sender: TObject;
lpVhdr: PVIDEOHDR);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;
HasVideo:Boolean;

implementation

{$R *.dfm}
procedure TForm1.btnStartClick(Sender: TObject);
Var
DevList:TStrings;
Vheader:TBitmapInfoHeader;
begin

DevList:=GetDriverList;
If DevList.Count<1 then
HasVideo:=False;
DevList.Clear;
DevList.Free;
VideoCap.DriverOpen:=False;
VideoCap.DriverIndex:=0;

Try
VideoCap.VideoPreview:=True;
Except
On ENotConnectExceptiondo
HasVideo:=False;
end;


If HasVideo then

begin

VHeader:=Videocap.BitMapInfoHeader;
VHeader.bicompression:=bi_RGB;
// Always RGB-Data
VHeader.biBitCount:= 24;
VideoCap.BitMapInfoHeader:= VHeader;
End
else

With VHeaderdo

begin

biSize:=40;
biWidth:=160;
biHeight:=120;
biPlanes:=1;
biBitCount:=24;
biCompression:=0;
biSizeImage:=57600;
biXPelsPerMeter:=0;
biYPelsPerMeter:=0;
biClrUsed:=0;
biClrImportant:=0;
end;

VideoCap.StartCapture ;
VideoDisp.Streaming:= True;
VideoDisp.BitMapInfoHeader:= VHeader;
end;


procedure TForm1.VideoCapVideoStream(sender: TObject;
lpVhdr: PVIDEOHDR);
begin

VideoDisp.DrawStream(lpVhdr^.lpData,True);
//在此怎样压缩、发送(VideoCodec在哪下载)?
end;


end.
 
晕菜,控件有属性你都不看一下?
把CapToFile设为False
 
DoubleWood
我正在编写像qq的程序,但dfw论坛代码中的videocodec单元我一直没找到,在获得视频流后无法压缩Zlib,Zlibex试过了,太大(用udp发送报错),VideoCap 2.3的帮助文件都是英文,而且没有代码说明,看不太懂,有没有相关的源代码呀?最好包括、压缩、传送、解压、回放的
 
我写有成熟的:364893066
 
呵呵,成熟产品已经有了,而且还可以实现1对多的视频会议效果!
要的话,给分!
 
忘了联系方式了:
QQ:66641467
 
还是没解决
 
多人接受答案了。
 
后退
顶部