OMCS Demo -- 在WPF中使用OMCS(附源码)

一.对WPF提供支持

      OMCS提供的默认的动态库可以直接在WinForm客户端程序中使用,如果客户端是使用WPF开发的,则需要多引用一个动态库:OMCS.WPF.dll。OMCS.WPF.dll 是一个WPF控件库,其重写了OMCS.dll中的各个连接器组件/控件,并提供与原始组件/控件完全相同的API接口。

      当我们把OMCS.WPF.dll添加到WPF的工具箱时,可以看到CameraConnector、DesktopConnector、WhiteBoardConnector等控件,直接将他们拖放到我们的WPF窗体上即可。如果要使用动态连接器组件,如OMCS.WPF.MicrophoneConnector、OMCS.WPF.DynamicCameraConnector、OMCS.WPF.DynamicDesktopConnector等,我们可以直接在代码中new它们的实例,并调用其SetViewer为其设置要绘制的控件表面。

      在OMCS Demo -- 视频、音频、电子白板、远程桌面 功能基本展现(附源码)所讲述的demo中,我们开发了一个WinForm的客户端,来展现OMCS的各个功能。本文的demo将在上个demo的基础上,增加一个WPF客户端,实现与WinFrom客户端完全一样的功能。

      首先,服务端可以直接使用上个demo的,不用做任何修改。接下来,我们来重点关注该Demo的WPF客户端的实现,这个过程实际上与上个demo的WinFrom客户端的实现是完全一致的。

二.Demo的WPF客户端实现

1.添加引用

      在解决方案中,新建WPF应用程序项目OMCS.Demos.Simplest.WPFClient,然后添加对OMCS等动态库的引用:OMCS.dll、OMCS.WPF.dll、PaintFramework.dll、ESBasic.dll。

      在工具箱中,添加OMCS.WPF.dll内置的各个控件。

2.初始化多媒体管理器

      在MainWindow的构造函数中,我们仍然直接使用MultimediaManagerFactory的静态方法GetSingleton来获取单件的多媒体管理器实例,并将其初始化: 

   //初始化多媒体管理器
    this.multimediaManager = MultimediaManagerFactory.GetSingleton();
    this.multimediaManager.CameraDeviceIndex = 0;
    this.multimediaManager.MicrophoneDeviceIndex = 0;
    this.multimediaManager.P2PChannelEnabled = true;
    this.multimediaManager.Initialize(this.userID, "", "127.0.0.1", 9900);//192.168.0.98

    //预定与OMCS服务器的连接断开、重连成功事件
    this.multimediaManager.ConnectionInterrupted += new CbGeneric(multimediaManager_ConnectionInterrupted);
    this.multimediaManager.ConnectionRebuildSucceed += new CbGeneric(multimediaManager_ConnectionRebuildSucceed);
    this.label_userID.Content = string.Format("当前登录:{0}", this.userID);
    this.label_state.Content = "连接状态:正常";

3.实现用于展现OMCS功能的各个Window 

      分别添加ChatWindow、DesktopWindow、WhiteBoardWindow,并采用与WinFrom客户端几乎完全相同的代码来实现它们。

4.添加非托管的动态库

      在完成了OMCS.Demos.Simplest.WPFClient,并编译通过后,需要将非托管的动态库拷贝到其运行目录下。需要拷贝的非托管动态库包括:AudioEngineCore.dll、VideoEngine.dll、VideoEngineCore.dll。如此,基于WPF的客户端就可以运行起来了。

 三.下载

      Demo源码:OMCS.Demos.WPF.rar

      在实现了本文的demo后,WPF客户端和WinFrom客户端可以公用同一个OMCS服务 端,并可相互连接到对方的多媒体设备。 

     

 

阅读 更多OMCS开发手册系列文章   

-----------------------------------------------------------------------------------------------------------------------------------------------   

下载免费版本的OMCS以及 demo源码 

关于OMCS的任何问题,欢迎联系我们:    

电话:027-87638960    

Q Q:168757008 

 

posted on 2012-05-21 15:09  傲瑞中国  阅读(572)  评论(0编辑  收藏  举报

导航