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 StartTimer() { StopTimer(); lock (_lock) { _jitterBuffer.Clear(); _timer = new Timer(JitterBufferTick, TimeSpan.FromMilliseconds(JITTER_BUFFER)); _timer.Start(); } }
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(); }