Ejemplo n.º 1
0
        public void StartTransmissionEndCheckTimer()
        {
            StopTimer();

            _timer = new Timer(CheckTransmissionEnded, TimeSpan.FromMilliseconds(JitterBuffer));
            _timer.Start();
        }
        public void StartTimer()
        {
            StopTimer();

            // _jitterBuffer.Clear();
            _timer = new Timer(AudioEffectCheckTick, TimeSpan.FromMilliseconds(JITTER_BUFFER));
            _timer.Start();
        }
 public void StopTimer()
 {
     if (_timer != null)
     {
         //    _jitterBuffer.Clear();
         _timer.Stop();
         _timer = null;
     }
 }
Ejemplo n.º 4
0
 public void StopTimer()
 {
     if (_timer == null)
     {
         return;
     }
     _timer.Stop();
     _timer = null;
 }
Ejemplo n.º 5
0
 public void StartTimer()
 {
     StopTimer();
     lock (_lock)
     {
         _jitterBuffer.Clear();
         _timer = new Timer(JitterBufferTick, TimeSpan.FromMilliseconds(JITTER_BUFFER));
         _timer.Start();
     }
 }
Ejemplo n.º 6
0
 public void StopTimer()
 {
     lock (_lock)
     {
         if (_timer != null)
         {
             _jitterBuffer.Clear();
             _timer.Stop();
             _timer = null;
         }
     }
 }
        private void SendAudio()
        {
            Logger.Info("Sending Audio... Please Wait");
            AudioGenerator mp3       = new AudioGenerator(mp3Path, volume, SpeakerGender, SpeakerCulture);
            var            opusBytes = mp3.GetOpusBytes();
            int            count     = 0;

            CancellationTokenSource tokenSource = new CancellationTokenSource();

            //get all the audio as Opus frames of 40 ms
            //send on 40 ms timer

            //when empty - disconnect
            //user timer for accurate sending
            var _timer = new Timer(() =>
            {
                if (!finished.IsCancellationRequested)
                {
                    if (count < opusBytes.Count)
                    {
                        udpVoiceHandler.Send(opusBytes[count], opusBytes[count].Length, freq, modulationBytes);
                        count++;

                        if (count % 50 == 0)
                        {
                            Logger.Info($"Playing audio - sent {count * 40}ms - {((float)count / (float)opusBytes.Count) * 100.0:F0}% ");
                        }
                    }
                    else
                    {
                        tokenSource.Cancel();
                    }
                }
                else
                {
                    Logger.Error("Client Disconnected");
                    tokenSource.Cancel();
                    return;
                }
            }, TimeSpan.FromMilliseconds(40));

            _timer.Start();

            //wait for cancel
            tokenSource.Token.WaitHandle.WaitOne();
            _timer.Stop();

            Logger.Info("Finished Sending Audio");
            finished.Cancel();
        }
Ejemplo n.º 8
0
        public void RequestStop()
        {
            _requestStop = true;

            _transmissionEndCheckTimer?.Stop();
            _transmissionEndCheckTimer = null;

            _udpTimeoutChecker?.Stop();
            _udpTimeoutChecker = null;

            _stopFlag.Cancel();
            _pingStop.Cancel();

            _listener?.Dispose();
            _listener = null;
        }