一。基本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. Android的JDK、SDK、Eclipse的理解

    今天看了这方面的内容,感觉学到了一些东西: 首先,jdk是用来处理Java语言的, sdk是用来处理Java语言和硬件之间的关联的, eclipse是用来编写Java语言的, 通过对这方面的理解,加深 ...

  2. FPGA学习笔记(二)——FPGA学习路线及开发流程

    ###### [该随笔部分内容转载自小梅哥]       ######### 一.FPGA学习路线 工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -& ...

  3. 【ShoppingWebCrawler】-基于Webkit内核的爬虫蜘蛛引擎概述

    写在开头 在各个电商平台发展日渐成熟的今天.很多时候,我们需要一些平台上的基础数据.比如:商品分类,分类下的商品详细,甚至业务订单数据.电商平台大多数提供了相应的业务接口.允许ISV接入,用来扩展自身 ...

  4. pymysql和 SQLAlchemy在python下的使用

    #!/usr/bin/env python # -*- coding:utf-8 -*- from sqlalchemy import create_engine, Table, Column, In ...

  5. ranker_worker.go

    package         outputDocs, numDocs := engine.rankers[shard].Rank(request.docs, request.options, req ...

  6. Java RESTful 框架的性能比较

    来源:鸟窝, colobu.com/2015/11/17/Jax-RS-Performance-Comparison/ 如有好文章投稿,请点击 → 这里了解详情 在微服务流行的今天,我们会从纵向和横向 ...

  7. JUC中Lock和ReentrantLock介绍及源码解析

    Lock框架是jdk1.5新增的,作用和synchronized的作用一样,所以学习的时候可以和synchronized做对比.在这里先和synchronized做一下简单对比,然后分析下Lock接口 ...

  8. Java 链接SQL Server 数据库

    1 //Java 连接 SQL Server数据库 2 public static final String DRIVERNAME="com.microsoft.sqlserver.jdbc ...

  9. bzoj2437 [Noi2011]兔兔与蛋蛋

    二分图博弈果然都是一个套路,必经点必胜,非必经点必败, 但是肯定不能每走一步就重新建图判断必胜还是必败,那么我们可以这样:每走一步就把这个点删掉,然后find他原来的匹配,如果找不到,就说明他是必经点 ...

  10. UWP中实现大爆炸效果(二)

    上一回实现了一个宽度不均匀的Panel,这次我们编写一个简单的BigbangView主体. 首先创建一个模板化控件,删掉Themes/Generic.xaml中的<Style TargetTyp ...