使用 PRTX 的视频开发组件,只需要6步,可以快速完成连接互联网任意两个用户之间的视频。
本例中我是用户10001,对方是10002分别在互联网的两个地方,P2Pserver.exe在IP地址为202.137.231.23的服务器上,监听UDP端口3283。Vocx控件实例名为Vocx1
1,找到本机的摄像头(调用函数GetCapDevice),将所有摄像头显示在comboBox1下拉列表控件中。
for(int i = 0; i<10; i++)
{
string s = axVocx1.GetCapDevice(i);
if( s.Length > 0)
comboBox1.Items.Add( s);
else
return ;
}
2. 创建套接字,并且设置服务器地址。
nPort = Vocx1.CreateTheSocket(0, 0) ‘假设nPort得到的视频端口值为1330
‘设置NAT服务器地址
Vocx1.SetNetwork( “202.137.231.23”, 3283, "", 0, "", "", "", 0);
3. 发送视频请求给对方。
发送视频请求,可以使用PRTX文字聊天接口SendMsg, 发送的内容中应该包括了自己的视频端口1330。比如IM. SendMsg (54, 0, 10002 , “1330” ); 54表示是视频请求,接收者是10002,1330是我的视频端口
4. 10002收到我的请求后,如果不同意,就用SendMsg发回不同意的回复,我收到不同意回复后,就要Vocx1.Stop。回到原来的状态。如果10002同意就通过SendMsg发送同意的回复,其中包括10002的视频端口2100,同时对方10002也应该创建套接字,并且设置服务器地址。
nPort = Vocx1.CreateTheSocket(0, 0) ‘假设nPort得到的视频端口值为2100
‘设置NAT服务器地址
Vocx1.SetNetwork( “202.137.231.23”, 3283, "", 0, "", "", "", 0);
IM. SendMsg (55, 0, 10002 , “2100” );
5. 我收到同意回复后,就开始登录P2Pserver.exe,10002在发出同意回复后,也登录P2Pserver.exe。
Vocx1.LoginNATSvr(10001,10002,1330,2100, "", 0) ‘10001调用这个
Vocx1.LoginNATSvr(10002,10001, 2100, 1330, "", 0) ‘10002调用这个
6. 双方等待触发OnConnect事件。,连接成功后,调用Start和StartSend发送视频。如下
private void axVocx1_OnConnected(object sender, AxVOCXLib._DVocxEvents_OnConnectedEvent e)
{
if (System.Convert.ToBoolean( e.nValue))
{
// "视频连接成功"
//启动视频捕捉
label11.Text = "视频连接成功";
axVocx1.Start();
//开始发送
axVocx1.StartSend();
}
else
{
// "视频连接不成功"
label11.Text = "视频连接失败";
}
}
QQ 1113562905
阅读(369) | 评论(0) | 转发(0) |