用Delphi开发视频聊天软件
发布时间:2006-05-21 20:18:06 来源:天极开发 网友评论 0 条 3.2.1新建一个工程,命名为Project2.dpr
3.2.2在程序窗口Form2上放置一个image控件,该控件用于接收的图像内容,再放置一个Tbutton控件,caption为"接收",,放置一个UDPServer组件,这里用indy的IdUDPServer用来接收网络视频,如图示:
接收按钮代码:
IdUDPServer1的UDPRead事件代码:
视频的传输是压缩成JPG进行传输的,服务器端和接收端都用到了jpeg单元,所以use中都要加入jpeg。
完整的视频聊天软件客户端代码:
好了,到这里程序代码也就写完了。在机上运行视频聊天软件服务器程序,点开始就开始进行视频的传输了,在网络上(网段为192.168.0.X,根据你的网络设置IP地址,我这用的局域网测试)的任何一台机上运行视频聊天软件客户端点接收都能接收到视频了。
如果要接收的视频内容清晰点,可以设置jpg.CompressionQuality:=10;(这个值可以是从1至100,数值越大,图像越清晰,当然传输的速度会越慢了,图像越清晰,数据包就会越大,如果超出了UDP包限制,看到图像就不完整了)
四、结束语
在这里,我把自己的一些经验和代码拿出来与大家一起分享,请高手不要扔鸡蛋啊,我真的是花了不少力气的!看了这篇文章后,相信你也可以自己动手做一个网络视频聊天软件,也可以做个类似MSN、QQ、E话通一样的视频聊天软件,有了网络视频就可以在千里之外和家人进行可视通讯了。上面的示例程序还有很多地方需要改进的,比如视频的压缩可以用其它视频压缩编码器进行压缩,这里只讲了传输图像,并没有声音,再改一下就才能传输音视频了,有兴趣的朋友不妨自己动手去试一试。
3.2.2在程序窗口Form2上放置一个image控件,该控件用于接收的图像内容,再放置一个Tbutton控件,caption为"接收",,放置一个UDPServer组件,这里用indy的IdUDPServer用来接收网络视频,如图示:
接收按钮代码:
| IdUDPServer1.DefaultPort:=9001; //接收端口 IdUDPServer1.Active:=true; //启用 |
IdUDPServer1的UDPRead事件代码:
| var jpg:TJpegImage;begin try jpg := TJpegImage.Create; jpg.LoadFromStream(Adata); Image1.Picture.Bitmap.Assign(jpg); jpg.Free; exceptend;end; |
视频的传输是压缩成JPG进行传输的,服务器端和接收端都用到了jpeg单元,所以use中都要加入jpeg。
完整的视频聊天软件客户端代码:
| unit Unit2; interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, ExtCtrls,jpeg,IdSocketHandle; type TForm1 = class(TForm) Image1: TImage; IdUDPServer1: TIdUDPServer; Button1: TButton; procedure Button1Click(Sender: TObject); procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); begin IdUDPServer1.DefaultPort:=9001; //接收端口 IdUDPServer1.Active:=true; //启用 end; procedure TForm1.IdUDPServer1UDPRead(Sender: TObject;AData: TStream; ABinding: TIdSocketHandle); var jpg:TJpegImage; begin try jpg := TJpegImage.Create; jpg.LoadFromStream(Adata); Image1.Picture.Bitmap.Assign(jpg); jpg.Free; except end; end; end. |
好了,到这里程序代码也就写完了。在机上运行视频聊天软件服务器程序,点开始就开始进行视频的传输了,在网络上(网段为192.168.0.X,根据你的网络设置IP地址,我这用的局域网测试)的任何一台机上运行视频聊天软件客户端点接收都能接收到视频了。
如果要接收的视频内容清晰点,可以设置jpg.CompressionQuality:=10;(这个值可以是从1至100,数值越大,图像越清晰,当然传输的速度会越慢了,图像越清晰,数据包就会越大,如果超出了UDP包限制,看到图像就不完整了)
![]() 聊天软件客户端 |
四、结束语
在这里,我把自己的一些经验和代码拿出来与大家一起分享,请高手不要扔鸡蛋啊,我真的是花了不少力气的!看了这篇文章后,相信你也可以自己动手做一个网络视频聊天软件,也可以做个类似MSN、QQ、E话通一样的视频聊天软件,有了网络视频就可以在千里之外和家人进行可视通讯了。上面的示例程序还有很多地方需要改进的,比如视频的压缩可以用其它视频压缩编码器进行压缩,这里只讲了传输图像,并没有声音,再改一下就才能传输音视频了,有兴趣的朋友不妨自己动手去试一试。
- 推荐阅讯
- Delphi面向对象的编程方法(三)
- 在Delphi中应用AOP实现日志功能
- Delphi中为TreeView添加单选和复选框
- 在DBGrid组件中显示和编辑MEMO字段
- 游戏项目中的自动化测试和持续集成
- 高质高效舒适地编程:使用Visual Unit(VU)
- 用NoahWeb表现层制作动态网站 - 第一天
- 基于Delphi的“八皇后”问题动态实现
- 解密宝典——十招教你学会软件破解
- Oracle数据操作和控制语言详解
- 阅读排行
- 1.全面剖析Delphi 2006新增特性
- 2.用Delphi开发视频聊天软件
- 3.用Win32 API枚举应用程序窗口和进程
- 4.软件的架构与设计模式之什么是架构
- 5.软件的架构与设计模式之模式的种类
- 6.Delphi中为TreeView添加单选和复选框
- 7.用Delphi实现24位真彩色图标
- 8.VS.NET2005 Beta2初体验之感受2005
- 9.程序界面设计模式慨述
- 10.没落的奇迹 谁会买下Delphi?
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册


