科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用Delphi开发视频聊天软件

用Delphi开发视频聊天软件

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

目前网上视频聊天室、视频会议软件、可视IP电话软件随处可见,你是否想自己做一个玩玩

作者:佚名 来源:天极开发 2007年10月31日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
3.2.1新建一个工程,命名为Project2.dpr

  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话通一样的视频聊天软件,有了网络视频就可以在千里之外和家人进行可视通讯了。上面的示例程序还有很多地方需要改进的,比如视频的压缩可以用其它视频压缩编码器进行压缩,这里只讲了传输图像,并没有声音,再改一下就才能传输音视频了,有兴趣的朋友不妨自己动手去试一试。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章