多媒体管理器解析IMultimediaManager
一。基本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的更多相关文章
- Windows内核进程管理器解析
Windows内核是如何实现线程挂起的?如何实现线程挂载到进程的?如何实现杀死进程和线程的? 从源码分析一下,这些操作具体在源码上是如何实现的. 进程创建.线程切换.线程跨越CPU权限级.进程挂靠.杀 ...
- OMCS开发手册(01) -- 多媒体设备管理器
我们在前面一篇文章中提到:任何一个OMCS的Client都有两种身份,Owner和Guest.多媒体设备管理器工作于OMCS客户端,并以Owner的身份管理本地所有的多媒体设备.多媒体设备管理器对象是 ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- f2fs解析(八)node 管理器中的node_info
free_info 功成身退,node_info顺利接班. // 这里还是蛮复杂的一件事,如果不搞清除的话,这个历史性的接班工作我们就接不上 上面说到 alloc_nid 和 alloc_nid_do ...
- f2fs解析(七)node管理器中的 free_nid 结构体
除了node_info之外, node管理器中还有还有个重要的数据结构: struct free_nid { struct list_head list; /* for free node id li ...
- [置顶] Android布局管理器 - 详细解析布局实现
布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 : 在上面的UML图中可以看出, 绝对布局 帧布局 网格布局 相 ...
- cocos2D-x 3.5 引擎解析之--引用计数(Ref),自己主动释放池(PoolManager),自己主动释放池管理器( AutoreleasePool)
#include <CCRef.h> Ref is used for reference count manangement. If a classinherits from Ref. C ...
- 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...
- AndroidUI设计之 布局管理器 - 详细解析布局实现
写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...
随机推荐
- SSM-Spring-04:Spring的DI的构造注入,P命名注入,和集合注入
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- DI和IOC相比,DI更偏向于实现 DI的set方式注入在前面入门案例里有写,所以此处不多啰嗦,直接开搞,先说 ...
- 基于Emit实现的C#版本的BeanCopier
在java的技术栈当中,著名的Cglib库里面有一个BeanCopier,这个类的功能就是可以完成两个对象的属性复制工作(哪怕属于两个不同的类). 今天本人通过.net内置的System.Reflec ...
- [爬虫]scrapy框架
Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 所谓网络爬虫,就是一个在网上到处或定向抓取数据 ...
- 干货 | Java中获取类名的3种方法!
获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonicalName() 返回的是更容易理解的类名表示. g ...
- in_flight_pqueue.go
// right child } if (*pq)[j].pri >= (*pq)[i].pri { break } ...
- diskqueue.go
}
- Opencv(C++)实现二阶线性插值
#include<opencv2\opencv.hpp> #include<iostream> using namespace cv; using namespace std; ...
- 【SAP HANA】SAP HANA开篇(1)
有幸当前工作能够接触到SAP S/4,能够接触到史上无敌的HANA内存数据库.HANA的技术我就不多讲了,感兴趣的人可以去百度一下.当然,有人想在本机安装HANA来学习,但前提是你得有128G内存以上 ...
- 华为云(ECS)-linux服务器中-Ubuntu图形界面安装-解决root登录受限-VNCviwer/Teamviwer远程访问教程
安装ubuntu-desktop .更新软件库 apt-get update .升级软件 apt-get upgrade .安装桌面 apt-get install ubuntu-desktop 解决 ...
- RabbitMQ指南之一:"Hello World!"
为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步.流量削锋.应用解耦的?网上已经有很多说明,我这里就不再说明了,读者可以参考(https://w ...