OMCS开发手册(03) -- 多媒体服务器
2012-05-18 17:12:56 来源:WEB开发网前面我们已经详细介绍了基于OMCS开发网络多媒体应用的客户端程序所必需掌握的内容,现在我们来看一下OMCS服务端的开发。对于使用者而言,OMCS的服务端就非常简单了,只要实现一个用户验证的接口,挂接到OMCS框架上,就可以了。OMCS多媒体服务器的主要职责有:
(1)统一管理所有多媒体设备的配置参数。
(2)管理所有在线的OMCS客户端。
(3)协助OMCS客户端之间建立P2P通道。
(4)在OMCS客户端之间转发信息。
一.MultimediaServer类
OMCS服务端的核心类是OMCS.Server.MultimediaServer,它将OMCS多媒体服务端的各个组件装配起来,构成一个整体运行。在二次开发时,我们只要正确地实例化MultimediaServer,然后将其宿留任何形式的程序中(像WinForm、Windows服务、甚至控制台程序等)即可。所以,作为OMCS使用者,我们只需要关心它的构造函数:
public MultimediaServer(int port, IUserVerifier userVerifier, OMCSConfiguration config, bool securityLogEnabled, string platformServerIPE)
port 参数用于指定当前OMCS服务器通过哪个端口提供服务(使用TCP协议)。
userVerifier 用于验证登录的客户端的帐号密码,如果帐号密码不正确,客户端多媒体设备管理器IMultimediaManager的Initialize方法将抛出异常。OMCS服务端开发唯一需要做的就是实现这个接口。
securityLogEnabled 参数用于指定是否记录安全日志,一般在调试程序的时候,将其设为true,而正式发布运行时,将其设为false。
platformServerIPE 用于设定OMCS群集平台服务器的地址,这里我们可以先忽略它。
MultimediaServer类的构造函数中最关键的参数是OMCSConfiguration,我们将在下面详细讨论。
二.OMCS多媒体服务器配置参数
OMCSConfiguration是多媒体服务器的最关键配置,其类图如下所示:
(1)音频:WaveSampleRate 用于设定麦克风的采样率(8k/16K/32K),AudioEncodingQuality 用于设定音频数据的编码质量(Low/Middle/High)。
(2)视频:CameraFramerate 用于设定摄像头的采集帧频(1~25), CameraEncodingQuality 用于设定视频帧的编码质量(Low/Middle/High),CameraVideoWidth和CamerVideoHeight 用于设定采集的视频的尺寸(通常为160*120、320*240、640*480)。
(3)远程桌面:DesktopFramerate 用于设定远程桌面的采集帧频(1~25), DesktopEncodingQuality 用于设定远程桌面的编码质量(Low/Middle/High)。
(4)电子白板:WhiteboardWidth和WhiteboardHeight用于设定电子白板的尺寸(比如800*600,具体取值需要综合考虑所有guest的屏幕大小)。电子白板的尺寸用于限制其可操作区域,超出区域之外的地方,是不能进行绘图操作的。
OMCSConfiguration 对四个多媒体设备都有对应的参数设置,当客户端的多媒体设备管理器初始化时,会从服务器获取OMCSConfiguration对象,然后初始化本地的各个多媒体设备。
三.默认的多媒体服务器
如果不需要用户验证,可以直接使用OMCS提供的默认的多媒体服务器OMCS.Server.exe(文末将提供其可执行程序和源码的下载),否则,将源码修改一下,实现IUserVerifier接口,并注入MultimediaServer的构造函数,然后重新发布。默认的OMCS.Server.exe以WinForm的形式宿留了MultimediaServer对象。其运行起来后,如下图所示:
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››OMCS Demo -- 视频、音频、电子白板、远程桌面 ...
- ››OMCS开发手册(04) -- 二次开发流程
- ››OMCS开发手册(03) -- 多媒体服务器
- ››OMCS开发手册(02) -- 多媒体连接器
- ››OMCS开发手册(01) -- 多媒体设备管理器
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
更多精彩
赞助商链接