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); } } }