標籤:style blog http 使用 os io strong 檔案
自從出來後,語音訊息和語音信箱變得非常流行,按下一個鍵說話,比打字要方便多了。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 V3.6 源碼
註:GG使用VS2010編譯產生的GG.exe檔案,這個檔案經常被新毒霸誤判為病毒,所以,這次發布的壓縮包中我把用戶端產生的GG.exe刪除了,大家可以自己編譯產生它。
關於GG的最新全貌介紹、以及如何部署、試用帳號等問題,我單獨寫了一篇文章,作為匯總,可參見 可在廣域網路部署啟動並執行QQ高仿版 -- GG2013概要。
歡迎和我探討關於GG2013的一切,我的QQ:2027224508,多多交流!
大家有什麼問題和建議,可以留言,也可以發送email到我郵箱:[email protected]。
如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵