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)); }
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)); } }