Chinaunix首页 | 论坛 | 博客
  • 博客访问: 751
  • 博文数量: 1
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-29 14:27
文章分类
文章存档

2012年(1)

我的朋友
最近访客

分类: 嵌入式

2012-06-29 14:28:24

使用 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
阅读(354) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~