Пример #1
0
        public VideoStreamModel[] GetVideoStreamModels(Size canvasSize)
        {
            List <IVideoBox> copiedVideoBoxs = new List <IVideoBox>();

            foreach (IVideoBox item in GetVisibleVideoBoxs())
            {
                VideoBox videoBox   = item as VideoBox;
                var      copiedItem = videoBox.Copy();
                copiedVideoBoxs.Add(copiedItem);
            }


            if (LayoutRendererStore.CurrentLayoutRenderType == LayoutRenderType.AutoLayout)
            {
                ModeDisplayerStore.Create().Display(copiedVideoBoxs, canvasSize);
            }
            else
            {
                LayoutRendererStore.Create().Render(copiedVideoBoxs, canvasSize, GetSpecialVideoBoxName(LayoutRendererStore.CurrentLayoutRenderType));
            }

            List <VideoStreamModel> videoStreamModels = new List <VideoStreamModel>();

            foreach (var copiedVideoBox in copiedVideoBoxs)
            {
                VideoStreamModel videoStreamModel = new VideoStreamModel()
                {
                    AccountId = copiedVideoBox.AccountResource.AccountModel.AccountId.ToString(),
                    Height    = (int)Math.Round(copiedVideoBox.Height),
                    StreamId  = copiedVideoBox.AccountResource.ResourceId,
                    Width     = (int)Math.Round(copiedVideoBox.Width),
                    X         = (int)Math.Round(copiedVideoBox.PosX),
                    Y         = (int)Math.Round(copiedVideoBox.PosY),
                };

                VideoBox videoBox = copiedVideoBox as VideoBox;
                videoStreamModel.VideoType = videoBox.AccountResource.MediaType == MediaType.VideoDoc ? VideoType.DataType : VideoType.VideoType;

                videoStreamModels.Add(videoStreamModel);
            }

            return(videoStreamModels.ToArray());
        }
Пример #2
0
        private void AccountResourceAddedEventHandler(VideoBox videoBox)
        {
            lock (_syncRoot)
            {
                if (ExtendedView == null)
                {
                    return;
                }

                ExtendedView.Dispatcher.BeginInvoke(new System.Action(() =>
                {
                    if (ExtendedView == null)
                    {
                        return;
                    }

                    var tobeAddedItem = _items[videoBox.Name];

                    if (tobeAddedItem != null && tobeAddedItem.AccountResource != null)
                    {
                        tobeAddedItem = videoBox.Copy();

                        SetDataBindings(tobeAddedItem);

                        _items[videoBox.Name] = tobeAddedItem;

                        MeetingResult meetingResult = _meetingSdkAgent.AddDisplayWindow(tobeAddedItem.AccountResource.AccountModel.AccountId, tobeAddedItem.AccountResource.ResourceId, tobeAddedItem.Handle, 0, 0);
                        System.Console.WriteLine($"AddDisplayWindow:statusCode={meetingResult.StatusCode}, msg={meetingResult.Message}, accountId={tobeAddedItem.AccountResource.AccountModel.AccountId}");
                    }

                    LayoutChange(LayoutRendererStore.CurrentLayoutRenderType);

                    _eventAggregator.GetEvent <ExtendedViewsShowedEvent>().Publish();
                }));
            }
            // 同步画面资源信息。
        }