自從微信出來后,語音消息和語音留言變得非常流行,按下一個鍵說話,比打字要方便多了。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。
如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵
