知识大全 用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开发视频聊天软件(三) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Delphi开发基于DCOM的聊天室 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
DELPHI基础教程:Delphi自定义部件开发(二)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
DELPHI基础教程:Delphi自定义部件开发(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
DELPHI基础教程:Delphi自定义部件开发(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
DELPHI基础教程:Delphi自定义部件开发(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
DELPHI基础教程:开发Delphi对象式数据管理功能(二)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
DELPHI基础教程:开发Delphi对象式数据管理功能(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
DELPHI基础教程:开发Delphi对象式数据管理功能(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
DELPHI基础教程:开发Delphi对象式数据管理功能(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快