コード例 #1
0
 private void StopAudio()
 {
     if (m_Player != null)
     {
         try
         {
             m_Player.Dispose();
         }
         finally
         {
             m_Player = null;
         }
     }
     if (m_Recorder != null)
     {
         try
         {
             m_Recorder.Dispose();
         }
         finally
         {
             m_Recorder = null;
         }
     }
     m_Fifo.Flush(); // clear all pending data
 }
コード例 #2
0
    private void button1_Click(object sender, EventArgs e)
    {
        openFileDialog1.ShowDialog();
        using (var reader = new Mp3FileReader(openFileDialog1.FileName))
        {
            var pcmLength = (int)reader.Length;
            _leftBuffer = new byte[pcmLength / 2];
            var buffer    = new byte[pcmLength];
            var bytesRead = reader.Read(buffer, 0, pcmLength);

            int index = 0;
            for (int i = 0; i < bytesRead; i += 4)
            {
                _leftBuffer[index] = buffer[i];
                index++;
                _leftBuffer[index] = buffer[i + 1];
                index++;
            }
            var player = new WaveLib.WaveOutPlayer(-1, new WaveLib.WaveFormat(44100, 16, 1), _leftBuffer.Length, 1, (data, size) =>
            {
                byte[] b = _leftBuffer;
                System.Runtime.InteropServices.Marshal.Copy(b, 0, data, size);
            });
        }
    }
コード例 #3
0
ファイル: SIPLib.cs プロジェクト: mironator/Sip-Phone
 /// <summary>
 /// Конец записи/воспроизведения звука
 /// </summary>
 public void Stop()
 {
     ThreadListen.Suspend();
     if (m_Player != null)
     {
         try
         {
             m_Player.Dispose();
         }
         finally
         {
             m_Player = null;
         }
     }
     if (m_Recorder != null)
     {
         try
         {
             m_Recorder.Dispose();
         }
         finally
         {
             m_Recorder = null;
         }
     }
     m_Fifo.Flush();
 }
コード例 #4
0
 private void Start()
 {
     Stop();
     try
     {
         WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(44100, 16, 2);
         m_Player   = new WaveLib.WaveOutPlayer(-1, fmt, 16384, 3, new WaveLib.BufferFillEventHandler(Filler));
         m_Recorder = new WaveLib.WaveInRecorder(-1, fmt, 16384, 3, new WaveLib.BufferDoneEventHandler(DataArrived));
     }
     catch
     {
         Stop();
         throw;
     }
 }
コード例 #5
0
ファイル: SIPLib.cs プロジェクト: mironator/Sip-Phone
 /// <summary>
 /// Начало записи/воспроизведения звука
 /// </summary>
 public void Start()
 {
     Stop();
     ThreadListen.Resume();
     try
     {
         WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(22050, 16, 2);
         m_Player   = new WaveLib.WaveOutPlayer(-1, fmt, 32000, 5, new WaveLib.BufferFillEventHandler(Filler));
         m_Recorder = new WaveLib.WaveInRecorder(-1, fmt, 32000, 5, new WaveLib.BufferDoneEventHandler(DataSend));
     }
     catch
     {
         Stop();
         throw;
     }
 }
コード例 #6
0
 private void StartAudio()
 {
     StopAudio();
     try
     {
         // Rates: 44100, 22050, 88200
         // Valore buono: 44100, 16, 1 / Buffer 8192, 2
         //WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(44100, 16, 2);
         //m_Player = new WaveLib.WaveOutPlayer(-1, fmt, 8192, 3, new WaveLib.BufferFillEventHandler(Filler));
         //m_Recorder = new WaveLib.WaveInRecorder(-1, fmt, 8192, 3, new WaveLib.BufferDoneEventHandler(SendAudioFrame));
         WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(22050, 16, 1);
         m_Player   = new WaveLib.WaveOutPlayer(-1, fmt, 8192, 2, new WaveLib.BufferFillEventHandler(Filler));
         m_Recorder = new WaveLib.WaveInRecorder(-1, fmt, 8192, 2, new WaveLib.BufferDoneEventHandler(SendAudioFrame));
     }
     catch
     {
         StopAudio();
         throw;
     }
 }
コード例 #7
0
ファイル: SIPLib.cs プロジェクト: lkathke/Sip-Phone
 /// <summary>
 /// Конец записи/воспроизведения звука
 /// </summary>
 public void Stop()
 {
     ThreadListen.Suspend();
     if (m_Player != null)
         try
         {
             m_Player.Dispose();
         }
         finally
         {
             m_Player = null;
         }
     if (m_Recorder != null)
         try
         {
             m_Recorder.Dispose();
         }
         finally
         {
             m_Recorder = null;
         }
     m_Fifo.Flush();
 }
コード例 #8
0
ファイル: SIPLib.cs プロジェクト: lkathke/Sip-Phone
 /// <summary>
 /// Начало записи/воспроизведения звука
 /// </summary>
 public void Start()
 {
     Stop();
     ThreadListen.Resume();
     try
     {
         WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(22050, 16, 2);
         m_Player = new WaveLib.WaveOutPlayer(-1, fmt, 32000, 5, new WaveLib.BufferFillEventHandler(Filler));
         m_Recorder = new WaveLib.WaveInRecorder(-1, fmt, 32000, 5, new WaveLib.BufferDoneEventHandler(DataSend));
     }
     catch
     {
         Stop();
         throw;
     }
 }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: hapex73/Pitchez
 private void Stop()
 {
     if (m_Player != null)
         try
         {
             m_Player.Dispose();
         }
         finally
         {
             m_Player = null;
         }
     if (m_Recorder != null)
         try
         {
             m_Recorder.Dispose();
         }
         finally
         {
             m_Recorder = null;
         }
     m_Fifo.Flush(); // clear all pending data
 }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: hapex73/Pitchez
 private void Start()
 {
     Stop();
     try
     {
         WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(44100, 16, 2);
         m_Player = new WaveLib.WaveOutPlayer(-1, fmt, 16384, 3, new WaveLib.BufferFillEventHandler(Filler));
         m_Recorder = new WaveLib.WaveInRecorder(-1, fmt, 16384, 3, new WaveLib.BufferDoneEventHandler(DataArrived));
     }
     catch
     {
         Stop();
         throw;
     }
 }