程序大作战,萌出一脸血!

移动开发
非常开心生平所写的第一篇博客就获得了广泛的赞誉,还有幸登上了编辑推荐,看来不仅是程序人生寂静欢喜,博客生涯也是岁月静好啊!在此还是把本人的杰作高挂:《程序人生的寂静欢喜》,高调还是要有的,万一红了呢?你说是吧?

非常开心生平所写的第一篇博客就获得了广泛的赞誉,还有幸登上了编辑推荐,看来不仅是程序人生寂静欢喜,博客生涯也是岁月静好啊!在此还是把本人的杰作高挂:《程序人生的寂静欢喜》,高调还是要有的,万一红了呢?你说是吧?

一. 引子

大家眼里的程序首先是这样的:

  1. namespace OMCS.Passive 
  2.     // 摘要: 
  3.     //    多媒体设备管理器基础接口。用于管理本地的所有多媒体设备。  
  4.     public interface IMultimediaManager : IDisposable 
  5.     {  
  6.         // 
  7.         // 摘要: 
  8.         //     是否根据音频反馈以及视频丢帧情况自动调整视频编码质量。 
  9.         bool AutoAdjustCameraEncodeQuality { get; set; } 
  10.         // 
  11.         // 摘要: 
  12.         //     掉线后,是否自动重连。 
  13.         bool AutoReconnect { get; set; }          
  14.         // 
  15.         // 摘要: 
  16.         //     语音视频聊天组入口。 
  17.         IChatGroupEntrance ChatGroupEntrance { get; }               
  18.         // 
  19.         // 摘要: 
  20.         //     是否将话筒采集到的音频输出给Guest。 
  21.         bool OutputAudio { get; set; } 
  22.         // 
  23.         // 摘要: 
  24.         //     是否将桌面图像输出给Guest。默认值为true。 
  25.         bool OutputDesktop { get; set; } 
  26.         // 
  27.         // 摘要: 
  28.         //     是否将摄像头集到的视频输出给Guest。 默认值为true。 
  29.         bool OutputVideo { get; set; } 
  30.         // 
  31.         // 摘要: 
  32.         //     当通道繁忙时,采取的视频帧(来自摄像头)丢弃模型。默认值为DiscardWhenNeed。 
  33.         FrameDisardedMode VideoFrameDisardedMode { get; set; } 
  34.         //      
  35.         // 摘要: 
  36.         //     刚刚从话筒采集的音频帧。 
  37.         event CbGeneric<byte[]> AudioCaptured; 
  38.         // 
  39.         // 摘要: 
  40.         //     刚刚播放的音频帧。 
  41.         event CbGeneric<byte[]> AudioPlayed;  
  42. // 
  43.         // 摘要: 
  44.         //     与多媒体服务器建立连接,并初始化本地多媒体管理器。 如果与服务器连接失败,将抛出网络异常。        
  45.         void Initialize(string userID, string password, string serverIP, int serverPort);       
  46.         // 
  47.         // 摘要: 
  48.         //     和目标用户之间是否打通了P2P通道?       
  49.         bool IsP2PChannelExist(string destUserID); 
  50.     } 
  51.  

可是你并不会知道他们在我眼里其实是这样的——

二.程序大作战

1.所谓的:“  OMCS 多媒体管理器,用于管理本地的所有多媒体设备。” 其实就是这个意思:

     

2.所谓的布尔类型的属性,其实就是一个个开关嘛,像这样:

     

2.所谓方法,其实就是一个个按钮,就像这样:

       

3.所谓事件,其实就是一个个插槽,就像这样:

    

4、所谓的布尔类型的只读属性,其实就是一个个指示灯,就像这样:

   

5.另外四个连接器可以就像这样:

    

三.萌出一脸血

最后,将这个零件全部组装起来,就成为了一个 OMCS 客户端了。是不是很萌呢?

  

运用形象化的思维,我们可以把原本很抽象枯燥,条分缕析的代码,变得鲜活、生动而又富有趣味,大家在理解程序的时候也可以借鉴一下哦。

责任编辑:倪明 来源: 博客园
相关推荐

2015-08-28 09:55:21

程序

2009-04-13 08:38:09

微软Windows 7操作系统

2021-09-15 20:20:00

AI

2016-11-17 16:58:01

华为 手机

2011-12-28 09:31:59

游戏

2019-07-04 12:36:12

小程序百度支付宝

2012-07-25 10:11:17

虚拟化

2010-04-07 17:28:18

服务器

2015-12-18 18:01:25

2018-01-10 15:23:09

2015-07-17 15:25:54

慕课网

2019-06-11 09:48:45

戴尔

2020-11-09 08:51:24

6G卫星

2021-11-12 06:39:51

Tomcat连接器面试

2020-12-11 09:20:01

数据库架构缓存

2022-09-30 19:32:36

ES面试查询

2020-08-25 17:50:36

Redis数据库内存

2022-09-23 18:16:25

KafkaJVM

2020-09-14 12:46:25

过滤器拦截器Filter

2023-01-26 02:16:17

点赞
收藏

51CTO技术栈公众号