可在廣域網部署執行的QQ高仿版 -- GG嘰嘰V3.6,增加語音訊息、語音留言等功能

C#開源即時通訊GGTalk發表於2014-08-06

  自從微信出來後,語音訊息和語音留言變得非常流行,按下一個鍵說話,比打字要方便多了。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。 

如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵  

 

相關文章