可在广域网部署运行的QQ高仿版 -- GG叽叽V3.6,增加语音消息、语音留言等功能
自从微信出来后,语音消息和语音留言变得非常流行,按下一个键说话,比打字要方便多了。GG在V3.6版本增加了对语音消息和语音留言(或称为离线语音消息)的支持。这两个功能的实现已经很完整,只是比较遗憾的一点是:GG所使用的文本框控件,还没有办法像微信的聊天窗口的文本框那样嵌入表示语音消息的控件,所以,我不得不把接收到的语音消息使用一个下拉列表罗列出来,实在很无奈。
一.GG V3.6 新增功能展现
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 V3.6 源码下载
下载最新版本,请转到这里。
注意:如果要将GG部署到广域网,则可以在服务端的配置文件中设置监听的端口;而在客户端的配置文件中,则可以指定服务器的IP和Port。
关于GG的最新全貌介绍、以及如何部署、试用帐号等问题,我单独写了一篇文章,作为汇总,可参见 可在广域网部署运行的QQ高仿版 -- GG2013概要。
欢迎和我探讨关于GG2013的一切,我的QQ:2027224508,多多交流!
大家有什么问题和建议,可以留言,也可以发送email到我邮箱:ggim2013@163.com。
如果你觉得还不错,请粉我,顺便再顶一下啊,呵呵
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库