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()); }
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(); })); } // 同步画面资源信息。 }