Exemplo n.º 1
0
        public static void InitializeChat(int toUserId, String toUserName, AvChatTypeE chatType, ChatTypeE clientWindow)
        {
            state         = AvChatStateE.Handshaking;
            ChatType      = chatType;
            initiatedChat = true;
            ToUserId      = toUserId;
            ToUserName    = toUserName;
            ClientWindow  = clientWindow;

            if (avPlayer != null)
            {
                avPlayer.Dispose();
                avPlayer = null;
            }

            StringBuilder connectionString = new StringBuilder("rtmp://");

            connectionString.Append(Config.AvServerIp);
            connectionString.Append(":");
            connectionString.Append(Config.AvServerPort);
            connectionString.Append("/videochat");

            try
            {
                string chatTypeString = ((int)ChatType + 1).ToString();
                avPlayer = new AvPlayer();
                avPlayer.player.CallFunction("<invoke name=\"InitializeChat\" returntype=\"xml\"><arguments><string>" + connectionString.ToString() + "</string><string>" + Ap.CurrentUserID.ToString() + "</string><string>" + toUserId.ToString() + "</string><number>" + chatTypeString + "</number></arguments></invoke>");
                //ringer.StartRinging();
                if (OnAvChatInitialize != null)
                {
                    OnAvChatInitialize.Invoke(typeof(AvPlayer), new AvChatEventArgs(ChatType));
                }
            }
            catch (AccessViolationException ex)
            {
                StopChat();
                MessageForm.Show(null, MsgE.ErrorAvNoCamera, MessageBoxButtons.OK, MessageBoxIcon.Error, ex);
            }
            catch (COMException e)
            {
                if (e.Message.Substring(0, 20) == "Class not registered")
                {
                    MessageForm.Show(null, MsgE.ErrorAvNoPlayer, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }