示例#1
0
        private void VideoEncoderPushingData(VideoEncodedDataContext value)
        {
            if (value.DataLength <= 0)
            {
                return;
            }

            _isPushStreamSuccess = VsNetRtmpSenderSdk.RtmpSender_WriteVideo(_handle, value.Data, value.DataLength, value.KeyFrame, value.TimeStamp) == 0;
            if (_isPushStreamSuccess)
            {
                _continuousPushFailedCount = 0;
                return;
            }
            if (_continuousPushFailedCount == 0)
            {
                _onNetworkInterruption?.Invoke();
            }
            _continuousPushFailedCount++;
            if (_continuousPushFailedCount > 100)
            {
                while (true)
                {
                    _StopLive();

                    bool reStartSuccess = StartLive();
                    if (reStartSuccess)
                    {
                        _onNetworkReconnectionSucceeded?.Invoke();
                        break;
                    }
                    else
                    {
                        _onNetworkReconnectionFailed?.Invoke();
                        Thread.Sleep(5000);
                    }
                }
            }
        }
示例#2
0
 private void VideoEncoder_PushingData(VideoEncodedDataContext value)
 {
     Debug.WriteLine("VideoEncoderTest:" + value.DataLength);
 }
示例#3
0
 public void OnNext(VideoEncodedDataContext value)
 {
     Debug.WriteLine("VideoEncoderTest:" + value.DataLength);
 }
示例#4
0
 private void VideoEncoderPushingData(VideoEncodedDataContext value)
 {
     VsNetRecordSdk.FileMuxer_WriteVideo(_handle, value.Data, value.DataLength, value.KeyFrame, value.TimeStamp);
 }