知识大全 用Delphi开发视频聊天软件(二)

Posted

篇首语:早晨要撒你种,晚上也不要歇你手。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Delphi开发视频聊天软件(二)相关的知识,希望对你有一定的参考价值。

用Delphi开发视频聊天软件(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     )定义全局变量

    CapWnd:THandle; //定义捕捉窗句柄    CapParms:TcaptureParms; //用于设置设备属性的结构变量    BMPINFO:TBitmapInfo; //BMP图像信息

     )编码事件代码

    开始按钮代码

    CapWnd := capCreateCaptureWindow( 我的窗口 WS_VISIBLE or WS_CHILD //窗口样式 //X坐标 //Y坐标 panel Width //窗口宽panel Height //窗口高 panel handle //窗口句柄 ); //通常为     if CapWnd = then exit; //定义帧捕捉回调函数    CapSetCallbackOnFrame(CapWnd FrameCallBack);    CapParms dwRequestMicroSecPerFrame:= ;    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 ); //设置预览视频的频率    CapCaptureSequenceNoFile(capWnd); //如果要捕捉视频流 则要使用函数来指定不生成文件 不然会自动生成AVI文件 CapDriverConnect(CapWnd ); //连接摄像头设备 第二个参数是个序号 当系统中装有多个显示驱动程序时 其值分别依次为 到总个数如果有多个摄像头 那么就是 > >     capGetVideoFormat(capWnd @BMPINFO sizeof(TBitmapInfo)); //取得视频图像数据头    CapPreviewScale(capWnd TRUE); //是否缩放    CapOverlay(capWnd true); //指定是否使用叠加模式 true为使用 否则为falseCapPreview(capWnd true);

    回调函数代码

    var hd:Thandle;    jpg:TJpegImage;    memStream :TMemoryStream;    Bitmap:TBitmap;    begin //将数据显在Image     Bitmap:=TBitmap Create;    Bitmap Width :=BMPINFO bmiHeader biWidth;    // New size of Bitmap    Bitmap Height:=BMPINFO bmiHeader biHeight;    hd:= DrawDibOpen; DrawDibDraw(hd Bitmap canvas handle _    BMPINFO BmiHeader biwidth BMPINFO bmiheader biheight _    @BMPINFO bmiHeader lpVHdr^ lpData BMPINFO bmiHeader biWidth _    BMPINFO bmiHeader biheight );    DrawDibClose(hd); //发送数据    memStream := TMemoryStream Create;    jpg := TJpegImage Create;    jpg Assign(Bitmap);    jpg CompressionQuality := ; //jpg压缩质量    jpg JPEGNeeded;    jpg Compress;    jpg SaveToStream(memStream);    jpg Free; //因为UDP数据包有大小限制 这里如果超出部分 就没有传输 完全可以发几次发出去    Form IdUDPClient BroadcastEnabled:=true;//用广播功能    if memStream Size>Form IdUDPClient BufferSize then    //向 X网段广播 端口     Form IdUDPClient SendBuffer( memStream Memory^ Form IdUDPClient BufferSize) else Form IdUDPClient SendBuffer( memStream Memory^ memStream Size);    memStream Free;    Bitmap Free;    End;

    停止代码

    capCaptureAbort(CapWnd); //停止捕捉 capDriverDisconnect(CapWnd); //将捕捉窗同驱动器断开

    完整的视频聊天软件服务器代码

cha138/Article/program/Delphi/201311/24744

相关参考

知识大全 用Delphi开发视频聊天软件(三)

用Delphi开发视频聊天软件(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 Delphi开发基于DCOM的聊天室

Delphi开发基于DCOM的聊天室  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 Delphi自定义部件开发(二)[4]

DELPHI基础教程:Delphi自定义部件开发(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(二)[3]

DELPHI基础教程:Delphi自定义部件开发(二)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(二)[2]

DELPHI基础教程:Delphi自定义部件开发(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(二)[1]

DELPHI基础教程:Delphi自定义部件开发(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 开发Delphi对象式数据管理功能(二)[4]

DELPHI基础教程:开发Delphi对象式数据管理功能(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 开发Delphi对象式数据管理功能(二)[3]

DELPHI基础教程:开发Delphi对象式数据管理功能(二)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 开发Delphi对象式数据管理功能(二)[2]

DELPHI基础教程:开发Delphi对象式数据管理功能(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 开发Delphi对象式数据管理功能(二)[1]

DELPHI基础教程:开发Delphi对象式数据管理功能(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快