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