public Task <ReturnMessage> UpdateLiveVideoStreams(int liveId, VideoStreamInfo[] videoStreamInfos, int count) { Task <ReturnMessage> checkTask = _meetingManager.CheckMeetingServerStatus(); if (checkTask != null) { return(checkTask); } var tcs = new TaskCallback <ReturnMessage>("UpdateLiveVideoStreams"); if (_meetingManager.TaskCallbacks.ContainsKey(tcs.Name)) { _meetingManager.TaskCallbacks.Remove(tcs.Name); } _meetingManager.TaskCallbacks.Add(tcs.Name, tcs); List <LiveVideoStreamInfo> liveVideoStreamInfos = new List <LiveVideoStreamInfo>(); foreach (var videoStreamInfo in videoStreamInfos) { liveVideoStreamInfos.Add(new LiveVideoStreamInfo() { Handle = videoStreamInfo.Handle, Height = videoStreamInfo.Height, Width = videoStreamInfo.Width, XLocation = videoStreamInfo.X, YLocation = videoStreamInfo.Y }); } var result = MeetingAgent.UpdateLiveVideoStreams(liveId, liveVideoStreamInfos.ToArray(), liveVideoStreamInfos.Count); if (result != 0) { return(Task.FromResult(MessageManager.FailedToRefreshLiveStream)); } return(tcs.Task); }