public Task <ReturnMessage> StartLiveStream(LiveParameter liveParameter, VideoStreamInfo[] videoStreamInfos, int count)
        {
            var checkTask = _meetingManager.CheckMeetingServerStatus();

            if (checkTask != null)
            {
                return(checkTask);
            }

            var tcs = new TaskCallback <ReturnMessage>("StartLiveStream");

            if (_meetingManager.TaskCallbacks.ContainsKey(tcs.Name))
            {
                _meetingManager.TaskCallbacks.Remove(tcs.Name);
            }

            _meetingManager.TaskCallbacks.Add(tcs.Name, tcs);


            var liveParam = new LiveParam()
            {
                m_nAudioBitrate   = 64,
                m_nBitsPerSample  = 16,
                m_nChannels       = 1,
                m_nHeight         = liveParameter.Height,
                m_nIsLive         = 1,
                m_nIsRecord       = 0,
                m_nSampleRate     = 8000,
                m_nVideoBitrate   = liveParameter.VideoBitrate,
                m_nWidth          = liveParameter.Width,
                m_sRecordFilePath = liveParameter.RecordFilePath,
                // m_url1 = "http://gslb.butel.com/live/live.butel.com/3a9d",
                m_url1 = liveParameter.Url1,
                m_url2 = liveParameter.Url2
            };

            var 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.StartLiveStream(liveParam, liveVideoStreamInfos.ToArray(),
                                                      liveVideoStreamInfos.Count);

            return(result != 0 ? Task.FromResult(MessageManager.FailedToStartLiveStream) : tcs.Task);
        }