Пример #1
0
 public void RecSoundStart(string audioOutputWavFile, string audioOutputMp3File)
 {
     _outputWaveName = audioOutputWavFile;
     _outputMp3Name  = audioOutputMp3File;
     capture         = new CSCore.SoundIn.WasapiLoopbackCapture();
     capture.Initialize();
     w = new WaveWriter(_outputWaveName, capture.WaveFormat);
     capture.DataAvailable += (s, capData) =>
     {
         w.Write(capData.Data, capData.Offset, capData.ByteCount);
     };
     capture.Start();
     LogIt(string.Format("recording {0} started", _outputWaveName));
     // OnSomthingChanged?.Invoke(this, string.Format("Recording {0} started", _outputWaveName));
 }
Пример #2
0
        public void RecSoundStop(bool isDeleteWav)
        {
            if (w != null && capture != null)
            {
                capture.Stop();
                w.Dispose();
                w = null;
                capture.Dispose();
                capture = null;

                LogIt("began converting to mp3");
                Task task1 = Task.Factory.StartNew(() => ConvertToMP3(_outputWaveName));
                task1.Wait();
                LogIt(string.Format("converting finished to {0}", _outputMp3Name));

                if (isDeleteWav)
                {
                    File.Delete(_outputWaveName);
                    LogIt(string.Format("File {0} deleted", _outputWaveName));
                }
                LogIt(string.Format("recording {0} stopped", _outputWaveName));
            }
        }