自从微信出来后,语音消息和语音留言变得非常流行,按下一个键说话,比打字要方便多了。GG在V3.6版本增加了对语音消息和语音留言(或称为离线语音消息)的支持。这两个功能的实现已经很完整,只是比较遗憾的一点是:GG所使用的文本框控件,还没有办法像微信的聊天窗口的文本框那样嵌入表示语音消息的控件,所以,我不得不把接收到的语音消息使用一个下拉列表罗列出来,实在很无奈。
1.语音消息
2.语音留言
3.离线消息分类:离线文字消息、离线语音消息。
4.修复bug:V3.5版本中出现了收不到离线文字消息的bug,已被修复。
废话不多说,还是先上图。
发送语音消息:
说明:点击菜单栏的麦克风按钮,窗口右侧将出现一个记录语音的Panel,按下“请按住说话”按钮即可开始记录语音,松开后,将完成记录,并将语音消息发送给对方。
接收语音消息、播放语音消息:
说明:点击下拉列表中的条目,即可播放相应的语音消息。
虽然提供了源代码,但是,我还是想将主要的思路列一下,这样,大家理解起源码来,会节省更多的时间。
1. 在项目源码中搜索“V3.6”,既可以看到本次修改所涉及到的主要源码部分。
2. 客户端增加AudioMessagePanel控件,用于记录语音消息。
3. 语音消息的采集是使用OMCS的IMultimediaManager的微信控制器模块MicroMessageController来实现的。
4. 语音消息的播放使用的是MicroMessagePlayer组件。
5. 在MainForm的Initialize方法中,预定MicroMessageController的MicroMessageReceived事件,以接收所有在线语音消息。
6. InformationTypes增加OfflineAudioMessage消息类型,用于表示离线的语音消息。
7. 在MainFormPartial.cs文件的HandleInformation方法中,在处理离线消息时,区分离线的文字消息和离线的语音消息,并分别处理。
8. 在服务端OfflineMessageController中,预定了IMultimediaServer的MicroMessagePostFailed事件,以捕获所有转发失败的语音消息,并将其与离线文字消息一样的方式存储、以及后续处理过程也一致。
下载最新版本,请转到这里。
注意:如果要将GG部署到广域网,则可以在服务端的配置文件中设置监听的端口;而在客户端的配置文件中,则可以指定服务器的IP和Port。
关于GG的最新全貌介绍、以及如何部署、试用帐号等问题,我单独写了一篇文章,作为汇总,可参见 可在广域网部署运行的QQ高仿版 -- GG2013概要。
欢迎和我探讨关于GG2013的一切,我的QQ:2027224508,多多交流!
大家有什么问题和建议,可以留言,也可以发送email到我邮箱:[email protected]。
如果你觉得还不错,请粉我,顺便再顶一下啊,呵呵