public void Initialize(IMultimediaManager mgr, string chatGroupID) { this.multimediaManager = mgr; this.chatGroup = this.multimediaManager.ChatGroupEntrance.Join(ChatType.Audio, chatGroupID); this.decibelDisplayer_mic.Working = true; this.decibelDisplayer_speaker.Working = true; this.multimediaManager.AudioCaptured += new ESBasic.CbGeneric <byte[]>(multimediaManager_AudioCaptured); this.multimediaManager.AudioPlayed += new ESBasic.CbGeneric <byte[]>(multimediaManager_AudioPlayed); this.chatGroup.SomeoneJoin += new ESBasic.CbGeneric <IChatUnit>(chatGroup_SomeoneJoin); this.chatGroup.SomeoneExit += new CbGeneric <string>(chatGroup_SomeoneExit); SpeakerPanel myselfPanel = new SpeakerPanel(); myselfPanel.Initialize(this.multimediaManager.CurrentUserID); this.flowLayoutPanel1.Controls.Add(myselfPanel); foreach (IChatUnit unit in this.chatGroup.GetOtherMembers()) { SpeakerPanel panel = new SpeakerPanel(); panel.Initialize(unit); this.flowLayoutPanel1.Controls.Add(panel); } this.groupBox_members.Text = string.Format("成员列表({0}人)", this.flowLayoutPanel1.Controls.Count); this.flowLayoutPanel1_SizeChanged(this.flowLayoutPanel1, new EventArgs()); }
void chatGroup_SomeoneExit(string memberID) { if (this.InvokeRequired) { this.BeginInvoke(new CbGeneric <string>(this.chatGroup_SomeoneExit), memberID); } else { SpeakerPanel target = null; foreach (SpeakerPanel panel in this.flowLayoutPanel1.Controls) { if (panel.MemberID == memberID) { target = panel; break; } } if (target == null) { return; } this.flowLayoutPanel1.Controls.Remove(target); this.groupBox_members.Text = string.Format("成员列表 ({0}人)", this.flowLayoutPanel1.Controls.Count); this.toolStripLabel1.Text = string.Format("{0} 退出了组!", memberID); } }
void chatGroup_SomeoneJoin(IChatUnit unit) { if (this.InvokeRequired) { this.BeginInvoke(new CbGeneric <IChatUnit>(this.chatGroup_SomeoneJoin), unit); } else { SpeakerPanel panel = new SpeakerPanel(); panel.Width = this.flowLayoutPanel1.Width - 2; panel.Initialize(unit); this.flowLayoutPanel1.Controls.Add(panel); this.groupBox_members.Text = string.Format("成员列表 ({0}人)", this.flowLayoutPanel1.Controls.Count); this.toolStripLabel1.Text = string.Format("{0} 加入了组!", unit.MemberID); } }