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