WEB开发网
开发学院WEB开发ASP.NET OMCS开发手册(02) -- 多媒体连接器 阅读

OMCS开发手册(02) -- 多媒体连接器

 2012-05-18 17:09:41 来源:WEB开发网   
核心提示:我们可以将这些连接器组件/控件添加到工具箱中:在VS的工具箱的空白地方右键快捷菜单 => 选择项,在弹出的“选择工具箱项”的窗体上,OMCS开发手册(02) -- 多媒体连接器(4),点击“浏览”按钮,选中OMCS.dll文件,电子白板连接器在连接Owner时,Ow
我们可以将这些连接器组件/控件添加到工具箱中:在VS的工具箱的空白地方右键快捷菜单 => 选择项,在弹出的“选择工具箱项”的窗体上,点击“浏览”按钮,选中OMCS.dll文件,再点击“确定”就可以了。
1.麦克风连接器
MicrophoneConnector是一个组件,没有UI元素,当然,它也不需要UI显示。
2.摄像头连接器
OMCS提供了两个摄像头连接器:CameraConnector和DynamicCameraConnector。它们的区别在于,CameraConnector是一个UI控件,直接在当前的UI上显示目标摄像头采集到的视频;DynamicCameraConnector是一个组件(没有UI),可以通过SetViewer方法动态地为其设置要在哪个UI上绘制。
/// <summary>
/// 设置要显示视频的控件。必须要在UI线程中调用该方法。
/// </summary>
/// <param name="newPanel">要绘制视频的控件。可以为null。</param>
public void SetViewer(Control newPanel)
像我们经常看到的视频聊天中的全屏显示功能,就可以采用DynamicCameraConnector实现,当用户点击全屏按钮时,将DynamicCameraConnector要绘制的表面设置为最前(Top)的窗体的表面就可以了。
除此之外,CameraConnector和DynamicCameraConnector还提供了以下特性:
Color PanelColor {get;set;}

bool AutoSynchronizeVideoToAudio {get;set;}

int MaxIdleSpan4BlackScreen {get;set;}

Bitmap GetCurrentImage();
PanelColor:用于设置被绘制控件的背景色,当没有视频图像显示时,将显示这种背景色。默认值为黑色。
MaxIdleSpan4BlackScreen:连续多长时间没有接收到新的视频帧时,就显示PanelColor所设置的背景色。默认值为5秒。这种情况经常在网络缓慢而导致视频帧延迟很大时出现。
GetCurrentImage:该方法可以将当前显示的视频帧保存为位图。使用该方法可以实现拍照功能。
AutoSynchronizeVideoToAudio:如果当前客户端连接了同一个Owner的摄像头和话筒,那么,CameraConnector/DynamicCameraConnector在播放视频时是否自动与音频保持同步。默认值为true。可以在运行时动态修改。
一般,在网络非常顺畅的情况下,视频帧与音频帧按是照接收就立即播放的模式来进行的,这本来就是同步的。但是,当网络存在抖动时,OMCS内部会自动启用抖动缓冲区(Jitter Buffer),这样就使得音频比视频的播放要稍慢一点(可能是几毫秒或几十毫秒,取决于网络抖动的幅度),而导致出现声音与画面不同步的情况。如果将AutoSynchronizeVideoToAudio设置为true,则OMCS会控制视频帧的播放,使其与音频始终保持一致。
3.远程桌面连接器
同摄像头连接器一样,OMCS也提供了两种远程桌面连接器:DesktopConnector和DynamicDesktopConnector。它们的区别也与两种摄像头连接器的区别一样。它的扩展特性有以下两个:
Color PanelColor {get;set;}

bool WatchingOnly {get;set;}
PanelColor的含义与摄像头连接器的一样,不再重复。
WatchingOnly 属性用于控制guest是否可以操作远程桌面。将其设为true,就可以实现类似QQ的远程协助的功能。
4.电子白板连接器
首先要强调一点,电子白板这个设备与其它的几个设备有个重要的区别:Owner的身份对于电子白板而言,更像是一个标志,而不是像前面三种设备一样,是实际设备的持有者。就像一栋大楼一样,里面有很多个房间,而Owner的ID只是这个房间的门牌号码。如果多个guest连到了同一个Owner的电子白板,意味着多个guest进入了同一个房间,可以在同一个电子白板上相互协作(这些guest看到的是完全相同的内容,当一个guest修改电子白板的内容时,其它的guest可以同时看到这种改变)。基于此,所以Owner的掉线不会导致Guest的电子白板连接器断开,也就是说,WhiteBoardConnector的Disconnected事件的ConnectorDisconnectedType参数的值永远不会是OwnerOffline。但是,为了能找到目标房间在哪栋楼里(在OMCS服务器群集环境中时,需要定位owner位于哪台服务器),电子白板连接器在连接Owner时,Owner必须在线,这一点与其它几个连接器是一致的。

上一页  1 2 3 4 5  下一页

Tags:OMCS 开发 手册

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接