public async Task ShowViewAsync(SpeakerView view)
        {
            Log.Logger.Debug(
                $"【create view】:hwnd={view.m_viewHwnd}, phoneId={view.m_speaker.m_szPhoneId}, viewType={view.m_viewType}");
            var viewFrameVisible = ViewFrameList.FirstOrDefault(viewFrame => viewFrame.Hwnd == view.m_viewHwnd);

            if (viewFrameVisible != null)
            {
                // LOG return a handle which can not be found in handle list.

                viewFrameVisible.IsOpened   = true;
                viewFrameVisible.Visibility = Visibility.Visible;
                viewFrameVisible.PhoneId    = view.m_speaker.m_szPhoneId;


                var    attendee    = _attendees.FirstOrDefault(userInfo => userInfo.GetNube() == view.m_speaker.m_szPhoneId);
                string displayName = string.Empty;
                if (!string.IsNullOrEmpty(attendee?.Name))
                {
                    displayName = attendee.Name;
                }

                viewFrameVisible.ViewName = view.m_viewType == 1
                    ? displayName
                    : $"(共享){displayName}";

                viewFrameVisible.ViewType  = view.m_viewType;
                viewFrameVisible.ViewOrder = ViewFrameList.Max(viewFrame => viewFrame.ViewOrder) + 1;
            }

            await LaunchLayout();
        }
        public async Task GotoSharingMode()
        {
            // 共享模式下,不会显示听讲者视图【设置完共享源,将自动开启共享模式】
            //1. 有主讲者视图和共享视图,主讲者小,共享大
            //2. 无主讲者,有共享,共享全屏
            //3. 没有共享,无法设置共享模式【选择共享模式时会校验】

            var sharingView =
                ViewFrameList.FirstOrDefault(
                    v => (v.PhoneId == _sdkService.TeacherPhoneId) && v.IsOpened && (v.ViewType == 2));

            if (sharingView == null)
            {
                await GotoDefaultMode();

                return;
            }

            var speakerView =
                ViewFrameList.FirstOrDefault(
                    v => (v.PhoneId == _sdkService.TeacherPhoneId) && v.IsOpened && (v.ViewType == 1));

            if (speakerView == null)
            {
                FullScreenView = sharingView;
                await LaunchCloseUpLayout();

                return;
            }

            SetBigView(sharingView);

            await LaunchBigSmallLayout();
        }
Esempio n. 3
0
        public async Task ShowViewAsync(ParticipantView view)
        {
            Log.Logger.Debug($"ViewLayout=>phoneId={view.Participant.PhoneId}, name={view.Participant.Name}, type={view.ViewType}, hwnd={view.Hwnd}");
            var viewFrameVisible = ViewFrameList.FirstOrDefault(viewFrame => viewFrame.Hwnd == view.Hwnd);

            if (viewFrameVisible != null)
            {
                viewFrameVisible.IsOpened   = true;
                viewFrameVisible.Visibility = Visibility.Visible;
                viewFrameVisible.PhoneId    = view.Participant.PhoneId;


                var attendee =
                    GlobalData.Instance.Classrooms.FirstOrDefault(
                        classroom => classroom.SchoolRoomNum == view.Participant.PhoneId);

                string displayName = string.Empty;
                if (!string.IsNullOrEmpty(attendee?.SchoolRoomName))
                {
                    displayName = attendee.SchoolRoomName;
                }

                viewFrameVisible.ViewName = view.ViewType == 1
                    ? displayName
                    : $"(课件){displayName}";

                viewFrameVisible.ViewType  = view.ViewType;
                viewFrameVisible.ViewOrder = ViewFrameList.Max(viewFrame => viewFrame.ViewOrder) + 1;
            }
            await LaunchLayout();
        }
Esempio n. 4
0
        public async Task HideViewAsync(ParticipantView view)
        {
            ResetFullScreenView(view);

            var viewFrameInvisible = ViewFrameList.FirstOrDefault(viewFrame => viewFrame.Hwnd == view.Hwnd);

            if (viewFrameInvisible != null)
            {
                // LOG return a handle which can not be found in handle list.

                viewFrameInvisible.IsOpened   = false;
                viewFrameInvisible.Visibility = Visibility.Collapsed;
            }

            await LaunchLayout();
        }
        public async Task HideViewAsync(SpeakerView view)
        {
            Log.Logger.Debug(
                $"【close view】:hwnd={view.m_viewHwnd}, phoneId={view.m_speaker.m_szPhoneId}, viewType={view.m_viewType}");

            ResetFullScreenView(view);

            var viewFrameInvisible = ViewFrameList.FirstOrDefault(viewFrame => viewFrame.Hwnd == view.m_viewHwnd);

            if (viewFrameInvisible != null)
            {
                // LOG return a handle which can not be found in handle list.

                viewFrameInvisible.IsOpened   = false;
                viewFrameInvisible.Visibility = Visibility.Collapsed;
            }

            await LaunchLayout();
        }
Esempio n. 6
0
        public async Task GotoSpeakerMode()
        {
            // 主讲模式下,不会显示听讲者视图
            //1. 有主讲者视图和共享视图,主讲者大,共享小
            //2. 有主讲者,没有共享,主讲者全屏
            //3. 无主讲者,无法设置主讲模式【选择主讲模式时会校验】

            var sharingView =
                ViewFrameList.FirstOrDefault(
                    v => (v.PhoneId == _sdkService.CreatorPhoneId) && v.IsOpened && (v.ViewType == 2));


            var speakerView =
                ViewFrameList.FirstOrDefault(
                    v => (v.PhoneId == _sdkService.CreatorPhoneId) && v.IsOpened && (v.ViewType == 1));

            if (sharingView == null && speakerView == null)
            {
                //await GotoDefaultMode();
                await LaunchAverageLayout();

                return;
            }

            if (sharingView != null && speakerView != null)
            {
                SetBigView(speakerView);
                await LaunchBigSmallLayout();

                return;
            }

            if (sharingView == null)
            {
                FullScreenView = speakerView;
                await LaunchCloseUpLayout();

                return;
            }

            FullScreenView = sharingView;
            await LaunchCloseUpLayout();
        }