static AvPlayer() { state = AvChatStateE.Idle; ChatType = AvChatTypeE.Audio; initiatedChat = false; ringer = new Ringer(); ringer.Initialize(); }
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); } } }
public static void StopChat() { if (initiatedChat && state == AvChatStateE.Handshaking) { ringer.StopRinging(); } state = AvChatStateE.Idle; if (avPlayer != null) { avPlayer.player.CallFunction("<invoke name=\"StopChat\" returntype=\"xml\"></invoke>"); avPlayer.Dispose(); avPlayer = null; } if (OnAvChatEnded != null) { OnAvChatEnded.Invoke(typeof(AvPlayer), new AvChatEventArgs(ChatType)); } }
public static void PlayChat() { if (avPlayer == null) { return; } ringer.StopRinging(); avPlayer.player.CallFunction("<invoke name=\"PlayChat\" returntype=\"xml\"></invoke>"); state = AvChatStateE.Talking; if (ChatType == AvChatTypeE.Video || IsMuted) { ShowPlayer(); } if (OnAvChatBegan != null) { OnAvChatBegan.Invoke(typeof(AvPlayer), new AvChatEventArgs(ChatType)); } }
public static void StartChat(DataTable dt) { Kv kv = new Kv(dt); string chatType; int fromUserId = kv.GetInt32("FromUserID"); int toUserId = kv.GetInt32("ToUserID"); string fromUserName = kv.Get("FromUserName"); AvChatTypeE chatTypeE = (AvChatTypeE)kv.GetInt32("AvChatType"); if (chatTypeE == AvChatTypeE.Audio) { chatType = "audio"; } else { chatType = "video"; } if (MessageForm.Confirm(ActiveForm, MsgE.InfoAvChatRequested, chatType, fromUserName) == DialogResult.No) { kv.Set("AvChat", (int)AvChatE.Declined); SocketClient.SendAvResponse(kv); return; } state = AvChatStateE.Talking; initiatedChat = false; ChatType = chatTypeE; FromUserId = fromUserId; FromUserName = fromUserName; ToUserId = toUserId; 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 { avPlayer = new AvPlayer(); if (ChatType == AvChatTypeE.Video) { ShowPlayer(); } string chatTypeString = ((int)ChatType + 1).ToString(); avPlayer.player.CallFunction("<invoke name=\"StartChat\" returntype=\"xml\"><arguments><string>" + connectionString.ToString() + "</string><string>" + FromUserId + "</string><string>" + ToUserId + "</string><number>" + chatTypeString + "</number></arguments></invoke>"); if (OnAvChatBegan != null) { OnAvChatBegan.Invoke(typeof(AvPlayer), new AvChatEventArgs(ChatType)); } } catch (AccessViolationException ex) { TestDebugger.Instance.WriteError(ex); StopChat(); MessageForm.Show(null, MsgE.ErrorAvNoCamera, MessageBoxButtons.OK, MessageBoxIcon.Error, ex); } catch (COMException e) { TestDebugger.Instance.WriteError(e); if (e.Message.Substring(0, 20) == "Class not registered") { MessageForm.Show(null, MsgE.ErrorAvNoPlayer, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }