一。基本API

        bool Available { get; }
bool Working { get; }
AdvancedOptions Advanced { get; }

二。作为通信引擎

        string CurrentUserID { get; } 

        string SystemToken { get; set; }
void Initialize(string userID, string password, string serverIP, int serverPort); 、 void Initialize(string userID, string password, string serverIP, int serverPort, Dictionary<MultimediaDeviceType, AgileIPEndPoint> deviceChannelDic); bool AutoReconnect { get; set; } bool IsP2PChannelExist(string destUserID); bool IsUserOnline(string userID); void CloseConnection(bool reconnectNow); ChannelMode ChannelMode { get; set; } void DisconnectGuest(bool notifyGuest); void DisconnectGuest(string guestID, MultimediaDeviceType deviceType, bool notifyGuest); List<string> GetGuests(MultimediaDeviceType deviceType); AgileIPEndPoint ServerIPE { get; } IShortMessageController ShortMessageController { get; } event CbGeneric<IPEndPoint> ConnectionInterrupted; event CbGeneric<IPEndPoint> ConnectionRebuildSucceed; event CbGeneric<string, int, int, int> JitterBufferDepthChanged;

三。作为设备管理者(OWner)

1.通用设备管理

        event CbGeneric<MultimediaDeviceType, int, string> DeviceErrorOccurred;

        bool DeviceIsWorking(MultimediaDeviceType deviceType);

        event CbGeneric<string, MultimediaDeviceType> DeviceConnected;

        event CbGeneric<string, MultimediaDeviceType> DeviceDisconnected;

2.摄像头管理

        bool AutoAdjustCameraEncodeQuality { get; set; }    

        int CameraDeviceIndex { get; set; } 

        int CameraEncodeQuality { get; set; }

        Size CameraVideoSize { get; set; }

        int MaxCameraFrameRate { get; set; }

        bool OutputVideo { get; set; }

        event CbGeneric<int, int> CameraIndexChanged;

        void ChangeCameraDeviceAsyn(int deviceIndex);

3。桌面管理

        int DesktopEncodeQuality { get; set; }

        Rectangle? DesktopRegion { get; set; }

        int MaxDesktopFrameRate { get; set; }

        bool OutputDesktop { get; set; }

        bool AllowControlDesktop { get; set; }

4。麦克风管理

        int MicrophoneDeviceIndex { get; set; }

        int VolumeAmplifyFactor { get; set; }

        event CbGeneric<byte[]> AudioCaptured;
bool OutputAudio { get; set; }

5。白板管理

        string CoursewaresRootPath { get; set; }

四。扩展接口

        IVideoCapturerFactory VideoCapturerFactory { get; set; }   

        IAudioCapturerFactory AudioCapturerFactory { get; set; }    

        IImageConverterFactory ImageConverterFactory { get; set; }

        IChatGroupEntrance ChatGroupEntrance { get; } 

五。日志管理

        bool SecurityLogEnabled { get; set; }

        IAgileLogger OmcsLogger { set; }

        string OmcsLogPath { get; set; }    

六。作为Guest

        bool Mute { get; set; }   

        int SpeakerIndex { get; set; }   

        event CbGeneric<IMultimediaConnector, ConnectorDisconnectedType> ConnectorDisconnected;

        event CbGeneric<byte[]> AudioPlayed;

****************************************************************************

****************************************************************************

1.可动态设置:

bool OutputAudio
bool OutputDesktop
bool OutputVideo int VolumeAmplifyFactor
bool AllowControlDesktop
bool AutoAdjustCameraEncodeQuality int CameraDeviceIndex
int MicrophoneDeviceIndex
int MicrophoneDeviceIndex Size CameraVideoSize
Rectangle? DesktopRegion int DesktopEncodeQuality
int CameraEncodeQuality int SpeakerIndex

2.初始化之前设置:

IAudioCapturerFactory AudioCapturerFactory
IImageConverterFactory ImageConverterFactory
IVideoCapturerFactory VideoCapturerFactory int MaxCameraFrameRate
int MaxDesktopFrameRate IAgileLogger OmcsLogger
AdvancedOptions Advanced
bool AutoReconnect

3.初始化之后设置:

IChatGroupEntrance ChatGroupEntrance
bool OutputAudio
bool OutputDesktop
bool OutputVideo
bool AllowControlDesktop

4.默认值

DesktopEncodeQuality=
MaxCameraFrameRate =
MaxDesktopFrameRate =
CameraDeviceIndex =
CameraEncodeQuality =
CameraVideoSize = *
AutoAdjustCameraEncodeQuality = true OutputAudio = true
OutputDesktop = true
OutputVideo = true SecurityLogEnabled = false
VolumeAmplifyFactor =
AllowControlDesktop = true
ChannelMode = P2PChannelFirst
OmcsLogPath = 运行目录下OmcsLog.txt
CoursewaresRootPath = 运行目录下的"Coursewares"文件夹
 

多媒体管理器解析IMultimediaManager的更多相关文章

  1. Windows内核进程管理器解析

    Windows内核是如何实现线程挂起的?如何实现线程挂载到进程的?如何实现杀死进程和线程的? 从源码分析一下,这些操作具体在源码上是如何实现的. 进程创建.线程切换.线程跨越CPU权限级.进程挂靠.杀 ...

  2. OMCS开发手册(01) -- 多媒体设备管理器

    我们在前面一篇文章中提到:任何一个OMCS的Client都有两种身份,Owner和Guest.多媒体设备管理器工作于OMCS客户端,并以Owner的身份管理本地所有的多媒体设备.多媒体设备管理器对象是 ...

  3. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  4. f2fs解析(八)node 管理器中的node_info

    free_info 功成身退,node_info顺利接班. // 这里还是蛮复杂的一件事,如果不搞清除的话,这个历史性的接班工作我们就接不上 上面说到 alloc_nid 和 alloc_nid_do ...

  5. f2fs解析(七)node管理器中的 free_nid 结构体

    除了node_info之外, node管理器中还有还有个重要的数据结构: struct free_nid { struct list_head list; /* for free node id li ...

  6. [置顶] Android布局管理器 - 详细解析布局实现

    布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 : 在上面的UML图中可以看出, 绝对布局 帧布局 网格布局 相 ...

  7. cocos2D-x 3.5 引擎解析之--引用计数(Ref),自己主动释放池(PoolManager),自己主动释放池管理器( AutoreleasePool)

    #include <CCRef.h> Ref is used for reference count manangement. If a classinherits from Ref. C ...

  8. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...

  9. AndroidUI设计之 布局管理器 - 详细解析布局实现

    写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...

随机推荐

  1. border-radius 圆角

    border-radius:3px;  参数的单位可以使绝对的像素px,也可以用相对单位%; 参数顺序是左上角,右上角,右下角,左下角. 圆角: div{width: 100px;height: 10 ...

  2. python爬取所有微信好友的信息

    ''' 爬取所有T信好友的信息 ''' import itchat from pandas import DataFrame itchat.login() friends=itchat.get_fri ...

  3. 电脑开机出现“致命错误C0000034。。。”--该怎么办?

    win7或win8系统的电脑在开机时出现了 "致命错误C0000034 正在更新操作236,共156764个0000000000000000.cdf-ms "的提示并不能正常启动系 ...

  4. 利用异或求(整数数组中,有2K+1个数,其中有2k个相同,找出不相同的那个数)

    转自https://blog.csdn.net/renjie_998003/article/details/50738025 java的位运算符中有一个叫异或的运算符,用符号(^)表示,其运算规则是: ...

  5. server.go 源码阅读

    ; i < conn.retries(); i++ {         r.conf.addr = conn.addr()         listener, err = net.Listen( ...

  6. 【Unity游戏开发】浅谈Lua和C#中的闭包

    一.前言 目前在Unity游戏开发中,比较流行的两种语言就是Lua和C#.通常的做法是:C#做些核心的功能和接口供Lua调用,Lua主要做些UI模块和一些业务逻辑.这样既能在保持一定的游戏运行效率的同 ...

  7. CAN总线的显性电平与隐性电平

    读CAN总线的书时,都会涉及到总线电平的问题,CAN总线的电平分为显性电平与隐性电平,这是CAN总线物理层的核心部分,也是总线仲裁的基础.那何为显性,何为隐性呢? 根据孔丙火(微信公众号:孔丙火)的理 ...

  8. 配置(迁移)Laravel的注意事项

    1.如果Laravel是在Linux下运行,如果权限不足,会报错 2.如果是从git上clone下来的项目,需要安装composer,切到项目根目录下 composer install compose ...

  9. Bot Framework 搭建聊天机器人

    这周我来跟大家分享的是在Microsoft Build 2016上发布的微软聊天机器人的框架. 现如今,各种人工智能充斥在我们的生活里.最典型的人工智能产品就是聊天机器人,它既可以陪我们聊天,也可以替 ...

  10. ModBus功能码速记

    一.0x01~0x04: 这四个功能码都是"读"操作,可分两组记忆,0x01和0x02是一组(bool类型),0x03和0x04是一组(寄存器类型):两组属性差不多如下: 1.都是 ...