经过了一个月的努力,FreeTalk终于算是正式发布了。这个网络电话本来是老师留的一个作业,其实网上有现成的C++写好的代码,不过为了学习C#我决定还是重新写一个。这一个月里,先是用了1/4的时间学习C#,又用了1/4的时间研究DirectX,最后1/2的时间就是开始编写代码和调试了。

要说学习编程是从小学5年级开始的,那时学的是Basic,用的是Apple II+的电脑(可不是现在的苹果,比286还差),后来初中学Pascal,不过都是Dos模式下的编程。高中转向网站制作和动画设计,就没怎么再接触编程了。虽然这个FreeTalk很简单,但却是我Windows窗体程序的处女作,应该算是我的电脑学习生涯的里程碑吧:)

FreeTalk是基于.Net环境下用C#编写的,语音的采集和播放用DirectX下的DirectSound实现。C#应该是现在最新的编程语言,他大大简化了编程的复杂度,又是基于.Net平台,因此可移植性也很好。比如用C#写网络传输不用建立麻烦的Socket对象,用UDPClient/TCPClient就可以很轻松的搞定,C#的开发效率恐怕Java望尘莫及啊……音频部分其实也可以用Windows API来实现,不过无论从功能还是可扩展行都不如DirectX,DirectX提供了一个完整的多媒体和游戏解决方案,包括DirectDraw,Direct3D,DirectSound,DirectShow等等。音频的采集和播放用DirectSound或DirectShow都可以,由于DirectX对流式数据的完美支持,使得音频的时时采集和播放能够很容易的实现。

在后续的开发过程中,我还打算对这个软件加以改进。一是增加音频压缩编码,这样能够更加节约带宽。二是采用DirectShow代替DirectSound以实现视频音频聊天。第三就就是增加中央目录服务器,可以让用户更方便的选择聊天对象……

回想整个开发过程,最难忘的就是查找资料,逛书店、搜Google、找ebook、混csdn……关于C#网络编程的资料确实不少,不过查找DirectX9 Managed的资料就像大海捞针,逛遍了海图也没发现一本相关的书籍。手头上只有DirectX SDK可以参考,又是英文的,所以感觉自己的英文水平提高了不少:)软件开发进度曾一度停滞在解决音频时时播放这个问题上,SDK中又没有详细介绍,最后很偶然的机会我在国外的一个BBS上看到了一个求助帖,其中是他一段错误的代码,而他正确的部分正是我需要的,我正确的部分也正是他需要的……:)

这一个月以来最要感谢的就是我的好朋友DigitalGhost,由于我是从对C#一窍不通开始学起,所以很多最基本的问题都解决不了,DigitalGhost给予了我很大的帮助和支持,还有从他那抢的两本书也让我受益匪浅。

在开发这个软件的过程中我也深刻的体会到,编写程序其实是很缺乏创造力的,我们只是在老美构建的程序世界中不断的Discovery而不是Invent,和使用他们早已准备好的资源。就算编写出再nb的程序,我们也只不过是IT民工罢了……

http://www.felixwoo.com/wp-content/uploads/attachments/old/20049132374998.jpg
  FreeTalk是一款基于.NET和DirectX的网络电话软件,使用C#和DirectSound技术开发。使用FreeTalk可以轻松实现点对点的网络语音聊天。非常感谢DigitalGhost 给予我的大力支持和帮助。

  FreeTalk是免安装的绿色软件,解压后运行FreeTalk.exe即可。由于该软件是基于.NET开发的,因此除了Windows2003以外的操作系统运行之前需要先安装.NET Framework(.net软件的运行平台)。

  由于本软件还很不成熟,在运行过程中难免出现问题,希望大家能及时到论坛反映情况,以便我能及时改进。

http://www.felixwoo.com/wp-content/uploads/attachments/old/200491323730129.jpg

使用说明:
1.首先确认已经连接好麦克风和耳机,并将Windows的录音输入选择为麦克风。
2.运行软件,输入对方的IP地址,点击开始等待对方。
3.待对方开始后即可进行语音聊天,并可用滑动条来调节耳机音量。
4.建议聊天时候将软件最小化这样能节约很多内存资源。

FreeTalk后续开发计划:
1.增加音频压缩和解压缩,提高音频质量
2.加入视频聊天功能
3.中央服务器提供目录服务,客户端可在用户在线目录列表中选择聊天(这样可以省去输入IP地址的麻烦)
4......(如果还有时间的话)

下载地址:
FreeTalk 1.0 http://www.felixwoo.com/download/freetalk.zip

京ICP备05053527号
经过26次查询历时0.385秒终于生成了此页面
Powered by WordPress & Designed by Felix © 2012