Ejemplo n.º 1
0
        // 2013-05-24: GreenRose Created
        private void InitAllSetting()
        {
            AnyChatCoreSDK.SetNotifyMessageCallBack(OnNotifyMessageCallback, 0);
            AnyChatCoreSDK.SetVideoDataCallBack(AnyChatCoreSDK.PixelFormat.BRAC_PIX_FMT_RGB24, OnVideoDataCallback, 0);

            // 2014-01-17: GreenRose
            AnyChatCoreSDK.SetRecordCallBack(OnRecordCallBack, 0);

            ulong dwFuncMode = AnyChatCoreSDK.BRAC_FUNC_VIDEO_CBDATA | AnyChatCoreSDK.BRAC_FUNC_AUDIO_AUTOPLAY | AnyChatCoreSDK.BRAC_FUNC_CHKDEPENDMODULE
                               | AnyChatCoreSDK.BRAC_FUNC_AUDIO_VOLUMECALC | AnyChatCoreSDK.BRAC_FUNC_NET_SUPPORTUPNP | AnyChatCoreSDK.BRAC_FUNC_FIREWALL_OPEN
                               | AnyChatCoreSDK.BRAC_FUNC_AUDIO_AUTOVOLUME | AnyChatCoreSDK.BRAC_FUNC_CONFIG_LOCALINI;

            AnyChatCoreSDK.InitSDK(IntPtr.Zero, dwFuncMode);
            //AnyChatCoreSDK.Connect("demo.anychat.cn", 8906);
            //AnyChatCoreSDK.Connect("98.126.164.98", 8906);
            //AnyChatCoreSDK.Connect("192.168.0.2", 8906);
            AnyChatCoreSDK.Connect(Login._ServerServiceUri, 8906);
            AnyChatCoreSDK.Login("1", "", 0);
            AnyChatCoreSDK.EnterRoom(1, "", 0);


            NotifyMessageHandler = new AnyChatCoreSDK.NotifyMessage_CallBack(NotifyMessageCallbackDelegate);
            VideoDataHandler     = new AnyChatCoreSDK.VideoData_CallBack(VideoDataCallbackDelegate);
            RecordHandler        = new AnyChatCoreSDK.RecordCallBack(RecordDataCallBackDelegate);
        }
Ejemplo n.º 2
0
        //开始会话
        private void VideoCall_SessionStart_Handler(int roomId)
        {
            AnyChatCoreSDK.EnterRoom(roomId, "", 0);
            SoundPlayer Player = new SoundPlayer();

            Player.Stream = Properties.Resources.system;
            Player.Play();
            Player.Dispose();
        }
Ejemplo n.º 3
0
        private void buttonStart_Click(object sender, RoutedEventArgs e)
        {
            // 设置回调函数
            AnyChatCoreSDK.SetNotifyMessageCallBack(OnNotifyMessageCallback, 0);
            AnyChatCoreSDK.SetVideoDataCallBack(AnyChatCoreSDK.PixelFormat.BRAC_PIX_FMT_RGB24, OnVideoDataCallback, 0);

            ulong dwFuncMode = AnyChatCoreSDK.BRAC_FUNC_VIDEO_CBDATA | AnyChatCoreSDK.BRAC_FUNC_AUDIO_AUTOPLAY | AnyChatCoreSDK.BRAC_FUNC_CHKDEPENDMODULE
                               | AnyChatCoreSDK.BRAC_FUNC_AUDIO_VOLUMECALC | AnyChatCoreSDK.BRAC_FUNC_NET_SUPPORTUPNP | AnyChatCoreSDK.BRAC_FUNC_FIREWALL_OPEN
                               | AnyChatCoreSDK.BRAC_FUNC_AUDIO_AUTOVOLUME | AnyChatCoreSDK.BRAC_FUNC_CONFIG_LOCALINI;

            // 初始化SDK
            AnyChatCoreSDK.InitSDK(IntPtr.Zero, dwFuncMode);
            AnyChatCoreSDK.Connect("demo.anychat.cn", 8906);
            AnyChatCoreSDK.Login("WFP", "", 0);
            AnyChatCoreSDK.EnterRoom(1, "", 0);


            NotifyMessageHandler = new AnyChatCoreSDK.NotifyMessage_CallBack(NotifyMessageCallbackDelegate);
            VideoDataHandler     = new AnyChatCoreSDK.VideoData_CallBack(VideoDataCallbackDelegate);
        }
Ejemplo n.º 4
0
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == ANYCHATAPI.AnyChatCoreSDK.WM_GV_CONNECT)
            {
                ///连接
                int succed = m.WParam.ToInt32();
                if (succed == 1)
                {
                    Print("连接成功!");
                }
                else
                {
                    Print("连接失败,错误号:" + m.LParam.ToInt32());
                }
            }
            else if (m.Msg == ANYCHATAPI.AnyChatCoreSDK.WM_GV_LOGINSYSTEM)
            {
                ///登录系统
                int userid = m.WParam.ToInt32();
                if (m.LParam.ToInt32() == 0)
                {
                    Print("登录服务器成功,自己的用户编号为:" + userid.ToString());
                    m_myUserID = userid;

                    AnyChatCoreSDK.EnterRoom(m_RoomID, "", 0);
                }
                else
                {
                    Print("登录服务器失败,代码出错为:" + m.LParam.ToInt32());
                }
            }
            else if (m.Msg == ANYCHATAPI.AnyChatCoreSDK.WM_GV_ENTERROOM)
            {
                ///进入房间
                if (m.LParam.ToInt32() == 0)
                {
                    int roomid = m.WParam.ToInt32();
                    Print("进入房间成功,房间编号为:" + roomid.ToString());
                    m_RoomID = roomid;
                    int ret = ANYCHATAPI.AnyChatCoreSDK.SetVideoPos(-1, pictureBox2.Handle, 0, 0, pictureBox2.Width, pictureBox2.Height);
                    ret = ANYCHATAPI.AnyChatCoreSDK.UserCameraControl(-1, true);
                    ret = ANYCHATAPI.AnyChatCoreSDK.UserSpeakControl(-1, true);
                }
                else
                {
                    Print("申请进入房间失败,出错代码为:" + m.LParam.ToInt32());
                }
            }
            else if (m.Msg == ANYCHATAPI.AnyChatCoreSDK.WM_GV_ONLINEUSER)
            {
                ///目前在房间的用户列表
                int usrcnt = m.WParam.ToInt32();
                Print("在编号为:" + m.LParam.ToInt32() + " 的房间共有" + usrcnt + "位在线用户");
                int cnt = 0;

                ANYCHATAPI.AnyChatCoreSDK.GetOnlineUser(null, ref cnt);

                int [] userArr = new int[cnt];
                ANYCHATAPI.AnyChatCoreSDK.GetOnlineUser(userArr, ref cnt);

                if (userArr.Length >= 1 && !videoOpenTag)
                {
                    m_tempUserID = userArr[0];
                    int ret = ANYCHATAPI.AnyChatCoreSDK.SetVideoPos(userArr[0],
                                                                    pictureBox1.Handle, 0, 0,
                                                                    pictureBox1.Width, pictureBox1.Height);
                    ret = ANYCHATAPI.AnyChatCoreSDK.UserCameraControl(userArr[0], true);
                    ret = ANYCHATAPI.AnyChatCoreSDK.UserSpeakControl(userArr[0], true);
                    if (ret == 0)
                    {
                        videoOpenTag = true;
                    }
                }
            }
            else if (m.Msg == ANYCHATAPI.AnyChatCoreSDK.WM_GV_USERATROOM)
            {
                ///新用户加入或退出房间
                int userID    = m.WParam.ToInt32();
                int boEntered = m.LParam.ToInt32();

                if (boEntered == 1 && !videoOpenTag)
                {
                    int ret = -1;
                    m_others.Add(userID);
                    Print("用户编号为:" + userID + " 进入房间");
                    m_tempUserID = userID;
                    ret          = AnyChatCoreSDK.SetVideoPos(userID, this.pictureBox1.Handle, 0, 0, pictureBox1.Width, pictureBox1.Height);
                    ret          = AnyChatCoreSDK.UserCameraControl(userID, true);
                    ret          = AnyChatCoreSDK.UserSpeakControl(userID, true);
                    if (ret == 0)
                    {
                        videoOpenTag = true;
                    }
                }
                else
                {
                    m_others.Remove(userID);
                    Print("用户编号为:" + userID + " 离开房间");
                }
            }

            base.WndProc(ref m);
        }
Ejemplo n.º 5
0
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == AnyChatCoreSDK.WM_GV_CONNECT)
            {
                ///连接
                int succed = m.WParam.ToInt32();
                if (succed == 1)
                {
                    Print("连接成功!");
                }
                else
                {
                    Print("连接失败,错误号:" + m.LParam.ToInt32());
                }
            }
            else if (m.Msg == AnyChatCoreSDK.WM_GV_LOGINSYSTEM)
            {
                ///登录系统
                int userid = m.WParam.ToInt32();
                if (m.LParam.ToInt32() == 0)
                {
                    //Print("登录服务器成功,自己的用户编号为:" + userid.ToString());
                    Print("登录服务器成功,自己的用户账号为:" + frmLogin.m_UserName);
                    m_myUserID = userid;
                    StringBuilder userName = new StringBuilder(30);

                    int ret = AnyChatCoreSDK.GetUserName(userid, userName, 30);

                    AnyChatCoreSDK.EnterRoom(m_RoomID, "", 0);
                }
                else
                {
                    Print("登录服务器失败,代码出错为:" + m.LParam.ToInt32());
                }
            }
            else if (m.Msg == AnyChatCoreSDK.WM_GV_ENTERROOM)
            {
                ///进入房间
                if (m.LParam.ToInt32() == 0)
                {
                    int roomid = m.WParam.ToInt32();
                    Print("进入房间成功,房间编号为:" + roomid.ToString());
                    m_RoomID = roomid;
                    int ret = AnyChatCoreSDK.SetVideoPos(-1, pnl_local.Handle, 0, 0, pnl_local.Width, pnl_local.Height);
                    ret = AnyChatCoreSDK.UserCameraControl(-1, true);
                    ret = AnyChatCoreSDK.UserSpeakControl(-1, true);
                }
                else
                {
                    Print("申请进入房间失败,出错代码为:" + m.LParam.ToInt32());
                }
            }
            else if (m.Msg == AnyChatCoreSDK.WM_GV_ONLINEUSER)
            {
                ///目前在房间的用户列表
                int usrcnt = m.WParam.ToInt32();
                Print("在编号为:" + m.LParam.ToInt32() + " 的房间共有" + usrcnt + "位在线用户");
                Print("当前时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));

                int cnt = 0;                                    //在线用户数量
                AnyChatCoreSDK.GetOnlineUser(null, ref cnt);    //获取在线用户数量
                int[] userArr = new int[cnt];                   //在线用户ID
                AnyChatCoreSDK.GetOnlineUser(userArr, ref cnt); //获取在线用户ID数组

                if (userArr.Length >= 1)
                {
                    for (int i = 0; i < userArr.Length; i++)
                    {
                        m_others.Add(userArr[i]);      //存入在线用户列表中(开发包带的用户在线ID数组)
                        UpdateUserList(userArr[i], i); //添加到在线用户列表(自定义,带用户属性结构)
                    }
                    UpdateOnlineUser();
                }
                else
                {
                    dgv_onlineuser.Rows.Clear();
                    DataGridViewRow dgvr = new DataGridViewRow();
                    dgv_onlineuser.Rows.Add(dgvr);
                    dgvr = dgv_onlineuser.Rows[dgv_onlineuser.Rows.Count - 1];
                    dgvr.Cells["gvc_username"].Value  = "大家";
                    dgvr.Cells["gvc_audio"].Value     = AnyChatCSharpDemo.Properties.Resources.深灰背景;
                    dgvr.Cells["gvc_video"].Value     = AnyChatCSharpDemo.Properties.Resources.深灰背景;
                    dgvr.Cells["gvc_character"].Value = AnyChatCSharpDemo.Properties.Resources.深灰背景;
                    dgvr = new DataGridViewRow();
                    dgv_onlineuser.Rows.Add(dgvr);
                    dgvr = dgv_onlineuser.Rows[dgv_onlineuser.Rows.Count - 1];
                    dgvr.Cells["gvc_username"].Value  = frmLogin.m_UserName;;
                    dgvr.Cells["gvc_character"].Value = AnyChatCSharpDemo.Properties.Resources.主持人_浅灰;
                    dgvr.Cells["gvc_audio"].Value     = AnyChatCSharpDemo.Properties.Resources.麦克;
                    dgvr.Cells["gvc_video"].Value     = AnyChatCSharpDemo.Properties.Resources.摄像头;
                }
            }
            else if (m.Msg == AnyChatCoreSDK.WM_GV_USERATROOM)
            {
                ///新用户加入或退出房间
                int userID    = m.WParam.ToInt32();
                int boEntered = m.LParam.ToInt32();

                if (boEntered == 1)
                {
                    m_others.Add(userID);
                    UpdateUserList(userID, m_others.Count - 1);
                    Print("用户:" + GetUserNameByID(userID) + " 进入房间");
                }
                else
                {
                    m_others.Remove(userID);
                    for (int i = 0; i < m_MemberItem.Count; i++)
                    {
                        if (m_MemberItem[i].m_UserID == userID)
                        {
                            m_MemberItem.RemoveAt(i);
                            break;
                        }
                    }
                    Print("用户:" + GetUserNameByID(userID) + " 离开房间");
                }
                UpdateOnlineUser(); //更新用户列表
                this.Invalidate();  //重绘界面,防止界面假死
            }
            base.WndProc(ref m);
        }