private void LoadedAsync() { var participants = _sdkService.GetParticipants(); participants.ForEach(view => { AttendeeItems.Add(new AttendeeItem() { Text = view.PhoneId == _sdkService.SelfPhoneId ? "我" : _userInfos.FirstOrDefault(user => user.GetNube() == view.PhoneId)?.Name, Content = view.IsSpeaking ? CancelSpeaking : SetSpeaking, Id = view.PhoneId, ButtonCommand = view.PhoneId == _sdkService.SelfPhoneId ? new DelegateCommand <AttendeeItem>(async(self) => { switch (self.Content) { case CancelSpeaking: AsyncCallbackMsg stopSpeakMsg = await _sdkService.StopSpeak(); if (stopSpeakMsg.HasError) { self.Content = CancelSpeaking; MessageQueueManager.Instance.AddInfo(stopSpeakMsg.Message); } else { self.Content = SetSpeaking; } break; case SetSpeaking: AsyncCallbackMsg startSpeakMsg = await _sdkService.ApplyToSpeak(); if (startSpeakMsg.HasError) { self.Content = SetSpeaking; MessageQueueManager.Instance.AddInfo(startSpeakMsg.Message); } else { self.Content = CancelSpeaking; } break; } }) : new DelegateCommand <AttendeeItem>((attendeeItem) => { switch (attendeeItem.Content) { case CancelSpeaking: //AsyncCallbackMsg stopCallbackMsg = _sdkService.RequireUserStopSpeak(attendeeItem.Id); int stopSpeakCmd = (int)UiMessage.BannedToSpeak; AsyncCallbackMsg sendStopSpeakMsg = _sdkService.SendMessage(stopSpeakCmd, stopSpeakCmd.ToString(), stopSpeakCmd.ToString().Length, attendeeItem.Id); if (sendStopSpeakMsg.HasError) { attendeeItem.Content = CancelSpeaking; MessageQueueManager.Instance.AddInfo(sendStopSpeakMsg.Message); } else { attendeeItem.Content = SetSpeaking; } break; case SetSpeaking: //AsyncCallbackMsg startCallbackMsg = _sdkService.RequireUserSpeak(attendeeItem.Id); int startSpeakCmd = (int)UiMessage.AllowToSpeak; AsyncCallbackMsg sendStartSpeakMsg = _sdkService.SendMessage(startSpeakCmd, startSpeakCmd.ToString(), startSpeakCmd.ToString().Length, attendeeItem.Id); if (sendStartSpeakMsg.HasError) { attendeeItem.Content = SetSpeaking; MessageQueueManager.Instance.AddInfo(sendStartSpeakMsg.Message); } else { attendeeItem.Content = CancelSpeaking; } break; } }) }); }); //InputSimulatorManager.Instance.Simulator.Keyboard.KeyPress(VirtualKeyCode.TAB); InputSimulatorManager.Instance.Simulator.Keyboard.KeyPress(VirtualKeyCode.TAB); }