⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 视频聊天的服务器端代码很有用的快点下载吧
💻 TXT
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, IdBaseComponent, IdComponent, IdUDPBase,
  IdUDPClient,jpeg;


type
  TForm1 = class(TForm)
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   private { Private declarations }
   public { Public declarations }
   end;


var
   Form1: TForm1;
   CapWnd:THandle;
   CapParms:TcaptureParms;
   BMPINFO:TBitmapInfo;
   implementation{$R *.dfm}
   function FrameCallBack(hWnd: HWND; lpVHdr: PVIDEOHDR): LongInt;stdcall;
var
   hd:Thandle;
   jpg:TJpegImage;
   memStream :TMemoryStream;
   Bitmap:TBitmap;
begin
   Bitmap:=TBitmap.Create;
   Bitmap.Width :=BMPINFO.bmiHeader.biWidth;
   Bitmap.Height:=BMPINFO.bmiHeader.biHeight;
   hd:= DrawDibOpen;
   DrawDibDraw(hd,Bitmap.canvas.handle,0,0,BMPINFO.BmiHeader.biwidth,BMPINFO._bmiheader.biheight,@BMPINFO.bmiHeader,
  _lpVHdr^.lpData,0,0,BMPINFO.bmiHeader.biWidth,BMPINFO.bmiHeader.biheight,0);
   DrawDibClose(hd);
   memStream := TMemoryStream.Create;
   jpg := TJpegImage.Create; jpg.Assign(Bitmap);
   jpg.CompressionQuality := 10;
   jpg.JPEGNeeded;
   jpg.Compress;
   jpg.SaveToStream(memStream);
    jpg.Free;
   Form1.IdUDPClient1.BroadcastEnabled:=true;
  if memStream.Size>Form1.IdUDPClient1.BufferSize
  then
 Form1.IdUDPClient1.SendBuffer('192.168.0.255',9001,memStream.Memory^,Form1.IdUDPClient1.BufferSize)
  else
 Form1.IdUDPClient1.SendBuffer('192.168.0.255',9001,memStream.Memory^,memStream.Size);
 memStream.Free;
 Bitmap.Free;
 end;
 procedure
 TForm1.Button1Click(Sender: TObject);
 begin
 CapWnd := capCreateCaptureWindow('我的窗口', WS_VISIBLE or WS_CHILD,
  0,
  0,
  panel1.Width,
  panel1.Height,
  panel1.handle,
  0);
 if CapWnd = 0
    then exit;
   CapSetCallbackOnFrame(CapWnd,FrameCallBack);
   CapParms.dwRequestMicroSecPerFrame:=1;
   CapParms.fLimitEnabled:=FALSE;
   CapParms.fCaptureAudio:=FALSE;
   CapParms.fMCIControl:=FALSE;
   CapParms.fYield:=TRUE;
   CapParms.vKeyAbort:=VK_ESCAPE;
   CapParms.fAbortLeftMouse:=False;
   CapParms.fAbortRightMouse:=FALSE;
   CapCaptureSetSetup(capWnd,@CapParms,sizeof(TCAPTUREPARMS));
   CapPreviewRate(capWnd,33);
   CapCaptureSequenceNoFile(capWnd);
   CapDriverConnect(CapWnd,0);
   CapPreviewScale(capWnd,TRUE);
   CapOverlay(capWnd,true);
 begin
   capCaptureAbort(CapWnd);
   capDriverDisconnect(CapWnd); 
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -