程序大做戰,萌出一臉血!

      很是開心平生所寫的第一篇博客就得到了普遍的讚譽,還有幸登上了編輯推薦,看來不只是程序人生寂靜歡喜,博客生涯也是歲月靜好啊!在此仍是把本人的傑做高掛:《程序人生的寂靜歡喜》,高調仍是要有的,萬一紅了呢?你說是吧?html

一. 引子

      你們眼裏的程序首先是這樣的:服務器

namespace OMCS.Passive
{
    // 摘要:
    // 多媒體設備管理器基礎接口。用於管理本地的全部多媒體設備。 
    public interface IMultimediaManager : IDisposable
    { 
// // 摘要: // 是否根據音頻反饋以及視頻丟幀狀況自動調整視頻編碼質量。 bool AutoAdjustCameraEncodeQuality { get; set; } // // 摘要: // 掉線後,是否自動重連。 bool AutoReconnect { get; set; }
//
// 摘要: // 語音視頻聊天組入口。 IChatGroupEntrance ChatGroupEntrance { get; }
// // 摘要: // 是否將話筒採集到的音頻輸出給Guest。 bool OutputAudio { get; set; } // // 摘要: // 是否將桌面圖像輸出給Guest。默認值爲true。 bool OutputDesktop { get; set; } // // 摘要: // 是否將攝像頭集到的視頻輸出給Guest。 默認值爲true。 bool OutputVideo { get; set; }
//
// 摘要: // 當通道繁忙時,採起的視頻幀(來自攝像頭)丟棄模型。默認值爲DiscardWhenNeed。 FrameDisardedMode VideoFrameDisardedMode { get; set; }
//
// 摘要: // 剛剛從話筒採集的音頻幀。 event CbGeneric<byte[]> AudioCaptured; // // 摘要: // 剛剛播放的音頻幀。 event CbGeneric<byte[]> AudioPlayed;
// // 摘要: // 與多媒體服務器創建鏈接,並初始化本地多媒體管理器。 若是與服務器鏈接失敗,將拋出網絡異常。 void Initialize(string userID, string password, string serverIP, int serverPort);
// // 摘要: // 和目標用戶之間是否打通了P2P通道? bool IsP2PChannelExist(string destUserID); } }

 

      但是你並不會知道他們在我眼裏實際上是這樣的——網絡

二.程序大做戰

     1.所謂的:「  OMCS 多媒體管理器,用於管理本地的全部多媒體設備。」 其實就是這個意思:ide

     

      2.所謂的布爾類型的屬性,其實就是一個個開關嘛,像這樣:編碼

     

  2.所謂方法,其實就是一個個按鈕,就像這樣:spa

       

  2.所謂事件,其實就是一個個插槽,就像這樣:code

    

  2.所謂的布爾類型的只讀屬性,其實就是一個個指示燈,就像這樣:視頻

   

 2.另外四個鏈接器能夠就像這樣:server

    

二.萌出一臉血

       最後,將這個零件所有組裝起來,就成爲了一個 OMCS 客戶端了。是否是很萌呢?只要咱們調整這些開關,控制這些按鈕,外接這些插槽,並觀察指示燈的變化,就能夠將「阿童木」胸前的多媒體鏈接器發射出去,鏈接到遠程機器上的多媒體設備了!htm

  

       運用形象化的思惟,咱們能夠把本來很抽象枯燥,條分縷析的代碼,變得鮮活、生動而又富有趣味,你們在理解程序的時候也能夠借鑑一下哦。

相關文章
相關標籤/搜索