嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 5 元微信扫码支付:5 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
(1)将服务端部署到一台服务器上,然后启动OMCS.Server.exe。
(2)修改客户端配置文件中的服务器的IP,在一台机器上启动客户端,登录一个帐号,比如aa01.
(3)在另一台机器上启动客户端,登录另一个帐号,比如aa02.
(4)aa01可以在主界面的TextBox中中输入aa02,并点击后面的按钮,来连接aa02的视频。
(5)aa02也可以在其UI中输入aa01,并点击后面的按钮,来连接aa01的视频。
(6)测试视讯时,两个客户端最好在不同的房间。
(7)测试白板时,需要连接到同一个用户的白板,才能协同。
public partial class ChatWindow : Window
{
private string ownerID;
private MicrophoneConnector microphoneConnector1 = new MicrophoneConnector() ;
public ChatWindow(string currentUserID, string _ownerID, bool camera, bool microphone)
{
InitializeComponent();
this.ownerID = _ownerID;
this.Title = string.Format("连接到{0}", _ownerID);
//预定连接器的连接结束和连接断开事件
this.cameraConnector1.ConnectEnded = new CbGeneric<ConnectResult>(cameraConnector1_ConnectEnded);
this.cameraConnector1.Disconnected = new CbGeneric<ConnectorDisconnectedType>(cameraConnector1_Disconnected);
this.microphoneConnector1.ConnectEnded = new CbGeneric<ConnectResult>(microphoneConnector1_ConnectEnded);
this.microphoneConnector1.Disconnected = new CbGeneric<ConnectorDisconnectedType>(microphoneConnector1_Disconnected);
if (camera)
{
this.cameraConnector1.BeginConnect(this.ownerID);
}
if (microphone)
{
this.microphoneConnector1.BeginConnect(this.ownerID);
}
}
void cameraConnector1_ConnectEnded(ConnectResult result)
{
this.Dispatcher.BeginInvoke(new CbGeneric<ConnectResult>(this.cameraConnector1_ConnectEnded2), result);
}
void cameraConnector1_ConnectEnded2(ConnectResult result)
{
//显示视频连接结果
this.label_camera.Content = string.Format("视频:{0}", result == ConnectResult.Succeed ? "正常" : result.ToString());
}
void microphoneConnector1_ConnectEnded(ConnectResult result)
{
this.Dispatcher.BeginInvoke(new CbGeneric<ConnectResult>(this.microphoneConnector1_ConnectEnded2), result);
}
void microphoneConnector1_ConnectEnded2(ConnectResult result)
{
//显示音频连接结果
this.label_microphone.Content = string.Format("音频:{0}", result == ConnectResult.Succeed ? "正常" : result.ToString());
}
void cameraConnector1_Disconnected(ConnectorDisconnectedType connectorDisconnectedType)
{
this.Dispatcher.BeginInvoke(new CbGeneric<ConnectorDisconnectedType>(this.cameraConnector1_Disconnected2), connectorDisconnectedType);
}
void cameraConnector1_Disconnected2(ConnectorDisconnectedType connectorDisconnectedType)
{
this.label_camera.Content = string.Format("视频:断开,{0}", connectorDisconnectedType);
if (connectorDisconnectedType == ConnectorDisconnectedType.TrialTimeout)
{
MessageBox.Show("Trial Timeout");
}
}
void microphoneConnector1_Disconnected(ConnectorDisconnectedType connectorDisconnectedType)
{
this.Dispatcher.BeginInvoke(new CbGeneric<ConnectorDisconnectedType>(this.microphoneConnector1_Disconnected2), connectorDisconnectedType);
}
void microphoneConnector1_Disconnected2(ConnectorDisconnectedType connectorDisconnectedType)
{
this.label_microphone.Content = string.Format("音频:断开,{0}", connectorDisconnectedType);
}
#region IManagedForm<string> 成员
public string FormID
{
get { return this.ownerID; }
}
#endregion
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
this.cameraConnector1.Disconnect();
this.microphoneConnector1.Disconnect();
}