Example #1
0
        private void MediaStreamer_StateChanged()
        {
            var state = mediaStreamer.State;

            logger.Debug("MediaStreamer_StateChanged() " + state);

            if (state == MediaStreamerState.Starting)
            {
                //PropertyNetwork.CommunicationPort = streamSession.CommunicationPort;
            }
            else if (state == MediaStreamerState.Streaming)
            {
                PropertyNetwork.CommunicationPort = streamSession.CommunicationPort;
            }
            else if (state == MediaStreamerState.Stopping)
            {
            }
            else if (state == MediaStreamerState.Stopped)
            {
                PropertyNetwork.CommunicationPort = PropertyNetwork.Port;

                var errorObj      = mediaStreamer.ExceptionObj;
                var errorCode     = mediaStreamer.ErrorCode;
                var internalCode  = mediaStreamer.CheckError();
                var internalError = mediaStreamer.GetInternalError();

                if (errorObj != null || errorCode != 0 || internalCode != 0 || internalError != null)
                {
                    logger.Warn("Process error...");
                    //...
                    //Process error


                    this.ErrorCode = internalCode;
                    this.ErrorObj  = internalError;

                    if (ErrorObj == null)
                    {
                        ErrorObj = errorObj;
                    }

                    if (ErrorCode != 0)
                    {
                        ErrorCode = errorCode;
                    }

                    ErrorOccurred?.Invoke(ErrorObj);
                }

                mediaStreamer.Shutdown();
            }
            else if (state == MediaStreamerState.Shutdown)
            {
            }



            StateChanged?.Invoke();
        }
Example #2
0
        private void OnStreamStopped()
        {
            infoButton.Enabled = true;

            networkSettingsLayoutPanel.Enabled     = true;
            videoSourceSettingsLayoutPanel.Enabled = true;
            audioSourceSettingsLayoutPanel.Enabled = true;

            switchStreamingStateButton.Enabled = true;
            switchStreamingStateButton.Text    = "Start Streaming";

            startToolStripMenuItem.Text = "Start";

            contextMenu.Enabled = true;

            captureStatusLabel.Text = "Ready to stream";

            captureStatusDescriptionLabel.Text = "";

            this.Cursor = Cursors.Default;

            if (statisticForm != null)
            {
                statisticForm.Stop();
                statisticForm.Visible = false;
            }

            if (debugBorderForm != null)
            {
                debugBorderForm.Close();
                debugBorderForm = null;
            }


            if (selectAreaForm != null)
            {
                selectAreaForm.Capturing = false;
            }

            var errorMessage = "";
            var ex           = mediaStreamer.ExceptionObj;

            if (ex != null)
            {
                errorMessage = ex.Message;
                var iex = ex.InnerException;
                if (iex != null)
                {
                    errorMessage = iex.Message;
                }
            }

            if (mediaStreamer != null)
            {
                mediaStreamer.Shutdown();
            }

            if (!string.IsNullOrEmpty(errorMessage))
            {
                MessageBox.Show(errorMessage);
            }
        }