Ejemplo n.º 1
0
        public void Start()
        {
            try
            {
                //Wenn geöffnet
                if (m_Player.Opened)
                {
                    //Wenn JitterBuffer
                    if (UseJitterBuffer)
                    {
                        m_JitterBuffer.Stop();
                    }
                }
                else
                {
                    //Zeitmessungen zurücksetzen
                    ResetTimeMeasurements();

                    //WinSound Player öffnen
                    m_Player.Open(Config.SoundDeviceName, Config.SamplesPerSecond, Config.BitsPerSample, Config.Channels, Config.BufferCount);

                    //Wenn JitterBuffer
                    if (UseJitterBuffer)
                    {
                        InitJitterBuffer();
                        m_JitterBuffer.Start();
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Ejemplo n.º 2
0
        private void StartPlayingToSounddevice_Client()
        {
            //JitterBuffer starten
            if (m_JitterBufferClientPlaying != null)
            {
                InitJitterBufferClientPlaying();
                m_JitterBufferClientPlaying.Start();
            }

            if (m_PlayerClient == null)
            {
                m_PlayerClient = new WinSound.Player();
                m_PlayerClient.Open(m_Config.SoundOutputDeviceNameClient, m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient, (int)m_Config.JitterBufferCountClient);
            }

            //Timer starten
            //m_TimerProgressBarPlayingClient.Start();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// StartRecordingFromSounddevice
        /// </summary>
        private void StartRecordingFromSounddevice()
        {
            try
            {
                if (IsServerRunning == false)
                {
                    //Buffer Grösse berechnen
                    int bufferSize = 0;
                    if (m_Config.IsTimeSyncClient)
                    {
                        bufferSize = WinSound.Utils.GetBytesPerInterval((uint)m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient) * (int)m_RecorderFactor;
                    }
                    else
                    {
                        bufferSize = WinSound.Utils.GetBytesPerInterval((uint)m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient);
                    }

                    //Wenn Buffer korrekt
                    if (bufferSize > 0)
                    {
                        //Recorder erstellen
                        m_Recorder = new WinSound.Recorder();

                        //Events hinzufügen
                        m_Recorder.DataRecorded     += new WinSound.Recorder.DelegateDataRecorded(OnDataReceivedFromSoundcard);
                        m_Recorder.RecordingStopped += new WinSound.Recorder.DelegateStopped(OnRecordingStopped);

                        //Recorder starten
                        if (m_Recorder.Start(comboBoxDevs.SelectedItem.ToString(), m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient, m_SoundBufferCount, bufferSize))
                        {
                            //Wenn JitterBuffer
                            if (m_Config.IsTimeSyncClient)
                            {
                                m_JitterBuffer.Start();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// StartRecording
        /// </summary>
        private void StartRecording()
        {
            try
            {
                //Buffer Grösse je nach JitterBuffer berechnen
                int bufferSize = 0;
                if (Config.UseJitterBuffer)
                {
                    bufferSize = WinSound.Utils.GetBytesPerInterval((uint)Config.SamplesPerSecond, Config.BitsPerSample, Config.Channels) * (int)m_RecorderFactor;
                }
                else
                {
                    bufferSize = WinSound.Utils.GetBytesPerInterval((uint)Config.SamplesPerSecond, Config.BitsPerSample, Config.Channels);
                }

                if (bufferSize > 0)
                {
                    if (m_Recorder.Start(Config.SoundDeviceName, Config.SamplesPerSecond, Config.BitsPerSample, Config.Channels, Config.BufferCount, bufferSize))
                    {
                        //ShowStarted_StreamSound();

                        //Wenn JitterBuffer
                        if (Config.UseJitterBuffer)
                        {
                            m_JitterBuffer.Start();
                            m_TimerProgressBarJitterBuffer.Start();
                        }
                    }
                    else
                    {
                        //ShowError();
                    }
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine(String.Format("BufferSize must be greater than 0. BufferSize: {0}", bufferSize));
                }
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 5
0
        private void StartRecordingFromSounddevice_Client()
        {
            try
            {
                if (IsRecorderFromSounddeviceStarted_Client == false)
                {
                    //Buffer Grösse berechnen
                    int bufferSize = 0;
                    if (UseJitterBufferClientRecording)
                    {
                        bufferSize = WinSound.Utils.GetBytesPerInterval((uint)m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient) * (int)m_RecorderFactor;
                    }
                    else
                    {
                        bufferSize = WinSound.Utils.GetBytesPerInterval((uint)m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient);
                    }

                    //Wenn Buffer korrekt
                    if (bufferSize > 0)
                    {
                        //Recorder erstellen
                        m_Recorder_Client = new WinSound.Recorder();

                        //Events hinzufügen
                        m_Recorder_Client.DataRecorded += new WinSound.Recorder.DelegateDataRecorded(OnDataReceivedFromSoundcard_Client);

                        //Recorder starten
                        if (m_Recorder_Client.Start(m_Config.SoundInputDeviceNameClient, m_Config.SamplesPerSecondClient, m_Config.BitsPerSampleClient, m_Config.ChannelsClient, m_SoundBufferCount, bufferSize))
                        {
                            //Wenn JitterBuffer
                            if (UseJitterBufferClientRecording)
                            {
                                m_JitterBufferClientRecording.Start();
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }