用Delphi开发视频聊天软件(三)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Delphi开发视频聊天软件(三)相关的知识,希望对你有一定的参考价值。
参考技术A 频聊天软件客户端
)新建一个工程 命名为Project dpr
)在程序窗口Form 上放置一个image控件 该控件用于接收的图像内容 再放置一个Tbutton控件 caption为 接收 放置一个UDPServer组件 这里用indy的IdUDPServer用来接收网络视频 如图示
接收按钮代码
IdUDPServer DefaultPort:= ; //接收端口 IdUDPServer Active:=true; //启用
IdUDPServer 的UDPRead事件代码
var jpg:TJpegImage;begin try jpg := TJpegImage Create; jpg LoadFromStream(Adata); Image Picture Bitmap Assign(jpg); jpg Free; exceptend;end;
视频的传输是压缩成JPG进行传输的 服务器端和接收端都用到了jpeg单元 所以use中都要加入jpeg
完整的视频聊天软件客户端代码
unit Unit ; interfaceuses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls IdBaseComponent IdComponent IdUDPBase IdUDPServer ExtCtrls jpeg IdSocketHandle; type TForm = class(TForm) Image : TImage; IdUDPServer : TIdUDPServer; Button : TButton; procedure Button Click(Sender: TObject); procedure IdUDPServer UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); private Private declarations public Public declarations end; var Form : TForm ; implementation$R * dfmprocedure TForm Button Click(Sender: TObject); begin IdUDPServer DefaultPort:= ; //接收端口 IdUDPServer Active:=true; //启用 end; procedure TForm IdUDPServer UDPRead(Sender: TObject;AData: TStream; ABinding: TIdSocketHandle); var jpg:TJpegImage; begin try jpg := TJpegImage Create; jpg LoadFromStream(Adata); Image Picture Bitmap Assign(jpg); jpg Free; except end; end; end
好了 到这里程序代码也就写完了 在机上运行视频聊天软件服务器程序 点开始就开始进行视频的传输了 在网络上(网段为 X 根据你的网络设置IP地址 我这用的局域网测试)的任何一台机上运行视频聊天软件客户端点接收都能接收到视频了
如果要接收的视频内容清晰点 可以设置jpg CompressionQuality:= ;(这个值可以是从 至 数值越大 图像越清晰 当然传输的速度会越慢了 图像越清晰 数据包就会越大 如果超出了UDP包限制 看到图像就不完整了)
视频聊天软件服务器
聊天软件客户端
四 结束语
lishixinzhi/Article/program/Delphi/201311/24738
第八章 视频播放器开发之软件架构
以上是关于用Delphi开发视频聊天软件(三)的主要内容,如果未能解决你的问题,请参考以下文章