private void OnButtonStartRecordingClick(object sender, EventArgs e) { if (writer != null) { writer.Close(); writer.Dispose(); writer = null; } DisableButtons(); buttonStopRecording.Enabled = true; captureDevice = new WaveIn(); captureDevice.DataAvailable += OnDataAvailable; captureDevice.RecordingStopped += OnRecordingStopped; //if(MainForm.savingWaveProvider != null) //{ // MainForm.savingWaveProvider.ClearWriterFileHandles(); //} // Forcibly turn on the microphone (some programs (Skype) turn it off). inputDevice.AudioEndpointVolume.Mute = false; outputFilename = $"{recordingNameText.Text}.wav"; writer = new WaveFileWriter(Path.Combine(outputFolder, outputFilename), captureDevice.WaveFormat); captureDevice.StartRecording(); SetControlStates(true); }
public void Dispose() { mWaveIn.DataAvailable -= On_AudioDataAvailable; mWaveIn.StopRecording(); mWaveIn.Dispose(); mWaveFileWriter.Close(); mWaveFileWriter.Dispose(); }
/// <summary> /// 停止录音 /// </summary> public void StopRecord() { mWavIn?.StopRecording(); mWavIn?.Dispose(); mWavIn = null; mWavWriter?.Close(); mWavWriter = null; }
static async Task Main() { Console.WriteLine("SIPSorcery Getting Started Demo"); AddConsoleLogger(); _waveFile = new WaveFileWriter("output.mp3", _waveFormat); var sipTransport = new SIPTransport(); var userAgent = new SIPUserAgent(sipTransport, null); userAgent.ClientCallFailed += (uac, err, resp) => { Console.WriteLine($"Call failed {err}"); _waveFile?.Close(); }; userAgent.OnCallHungup += (dialog) => _waveFile?.Close(); WindowsAudioEndPoint winAudioEP = new WindowsAudioEndPoint(new AudioEncoder()); VoIPMediaSession voipSession = new VoIPMediaSession(winAudioEP.ToMediaEndPoints()); voipSession.OnRtpPacketReceived += OnRtpPacketReceived; // Ctrl-c will gracefully exit the call at any point. Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; if (userAgent.IsCallActive) { Console.WriteLine("Hanging up."); userAgent.Hangup(); } else { Console.WriteLine("Cancelling call"); userAgent.Cancel(); } }; // Place the call and wait for the result. bool callResult = await userAgent.Call(DESTINATION, null, null, voipSession); Console.WriteLine($"Call result {((callResult) ? "success" : "failure")}."); Console.WriteLine("press any key to exit..."); Console.Read(); if (userAgent.IsCallActive) { Console.WriteLine("Hanging up."); userAgent.Hangup(); } // Clean up. sipTransport.Shutdown(); }
private void CreateNewTempFile() { _waveFileWriter.Flush(); _waveFileWriter.Close(); _tempFileList.Add(_tempWavPath); _tempWavPath = _tempDirPath + "automix_" + (_tempFileList.Count + 1) + ".wav"; _waveFileWriter = new WaveFileWriter(_tempWavPath, AudioIO.TempWaveFormat); }
public void Dispose() { if (_waveIn != null) { _waveIn.StopRecording(); _waveIn.DataAvailable -= OnDataAvailable; _waveIn.Dispose(); } _writer?.Close(); }
void waveIn_RecordingStopped(object sender, EventArgs e) { try { waveIn.Dispose(); waveIn = null; writer.Close(); writer = null; } catch { } }
public void Dispose() { if (_waveIn != null) { _waveIn.StopRecording(); _waveIn.Dispose(); _waveIn = null; } if (_writer != null) { _writer.Close(); _writer = null; } }
public void Dispose() { if (wave_in != null) { wave_in.StopRecording(); wave_in.Dispose(); wave_in = null; } if (writer != null) { writer.Close(); writer = null; } }
private void waveIn_RecordingStopped(object sender, EventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler(waveIn_RecordingStopped), sender, e); } else { waveIn.Dispose(); waveIn = null; writer.Close(); writer = null; } }
void sourceInStream_RecordingStopped(object sender, StoppedEventArgs e) { if (sourceInStream != null) { sourceInStream.Dispose(); sourceInStream = null; } if (waveWriter != null) { waveWriter.Close(); waveWriter.Dispose(); waveWriter = null; } }
private void button1_Click_1(object sender, EventArgs e) { if (waveIn == null) { waveIn = new WaveIn(); int sampleRate = 22000; int channels = 2; waveIn.WaveFormat = new WaveFormat(sampleRate, channels); waveIn.DeviceNumber = 2; waveIn.DataAvailable += new EventHandler <WaveInEventArgs>(waveIn_DataAvailable); iii++; var fname = "test" + iii + ".wav"; writer = new WaveFileWriter(fname, waveIn.WaveFormat); waveIn.StartRecording(); button1.Text = "stop " + fname; } else { waveIn.StopRecording(); waveIn.Dispose(); writer.Close(); waveIn = null; writer = null; button1.Text = "start"; } }
public void SaveRecord() { try { waveOut.Stop(); waveIn.StopRecording(); if (File.Exists(outputFile)) { File.Delete(outputFile); } writer = new WaveFileWriter(outputFile, waveIn.WaveFormat); byte[] buffer = new byte[bwp.BufferLength]; int offset = 0; int count = bwp.BufferLength; var read = bwp.Read(buffer, offset, count); if (count > 0) { writer.Write(buffer, offset, read); } waveIn.Dispose(); waveIn = null; writer.Close(); writer = null; } catch (Exception e) { MessageBox.Show(e.Message); } }
private void WriteFile2(CMyTask task) { string filename = string.Format("{0}\\{1}", TestDir, task.Name); WaveFileWriter writer = new WaveFileWriter(filename, new WaveFormat(8000, 16, 1)); foreach (var item in task.BufferList) { writer.Write(item, 0, item.Length); } //偷看一下task與其property的generation : 通通都是generation 2 (包括task自己) //writer是generation 0 //if (Counter % 1000 == 0) //{ // ShowGeneration(task); // ShowGeneration(task.Name); // ShowGeneration(task.BufferList); // ShowGeneration(writer); //} writer.Close(); writer.Dispose(); writer = null; //GC似乎只會自動回收 generation 最新的那層 //所以這函式內要是有做new,傳入的那個List就不會被快速回收到,要等很久 //傳入的參數跨thread,測驗過它的generation==2 if (Counter % 1000 == 0) { GC.Collect(2); } Interlocked.Decrement(ref Counter); }
private void record_loop() { while (cSamplePos < mSamplePos) { if (stop_flag) { break; } if (sampleQueue.Count > 0) { check_diskspace(); byte[] packet = (byte[])sampleQueue.Dequeue(); SoundPacket p = new SoundPacket(packet); form.Invoke(form.myDelegate, new object[] { p.averageDB }); writer.Write(packet, 0, packet.Length); } } this.isRecording = false; writer.Close(); PortAudio.Pa_StopStream(stream); }
/// <summary> /// Finish recording and close WAV file. /// </summary> public void StopRecording() { if (!_isRecording) { return; } if (_captureInput != null) { _captureInput.DataAvailable -= _OnDataAvailable; _captureInput.StopRecording(); GC.SuppressFinalize(_captureInput); _captureInput.Dispose(); _captureInput = null; } if (_waveWriter != null) { _waveWriter.Flush(); _waveWriter.Close(); _waveWriter.Dispose(); GC.SuppressFinalize(_waveWriter); Debug.WriteLine("Recording finished.\n\tFile=" + _tempWavFilePath + "\n"); _waveWriter = null; } _isRecording = false; _state = RecorderState.RecordingFinsihed; Debug.WriteLine("Recording of " + _tempWavFilePath + " stopped"); }
//Окончание записи private void WaveIn_RecordingStopped(object sender, StoppedEventArgs e) { waveIn.Dispose(); waveIn = null; writer.Close(); writer = null; }
public static void StopRecording(bool saveFile) { Recording = false; loopback?.StopRecording(); loopback?.Dispose(); loopback = null; writer?.Close(); if (saveFile) { SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "Wav Files|*.wav"; if (dialog.ShowDialog() == true) { File.Move("temp.wav", dialog.FileName); } } if (File.Exists("temp.wav")) { File.Delete("temp.wav"); } writer?.Dispose(); writer = null; }
void WaveInRecordingStopped(object sender, EventArgs e) { waveIn.Dispose(); //останавливаем запись waveIn = null; writer.Close(); //сбрасываем экземпляр класс, который отвечает за запись writer = null; byte[] record = File.ReadAllBytes(outputFilename); //загружаем нашу запись из файла results = GetResultsFromYandex(record); //получаем варианты расшифровки того что мы мсказали //textBox1.Text = results[0]; foreach (var line in results) { textBox1.Text += line + "\r\n"; //отображаем результаты в текстовом поле } button1.Text = "Начать запись"; //сбрасываем название кнопки button1.Enabled = true; //и делаем её активной if (results.Exists(x => x.ToLower() == textBox2.Text.ToLower())) //если есть совпадения (при помощи linq выражений) { label2.Text = "Правильно!"; Points++; } else { label2.Text = "Неправильно!"; } File.AppendAllText(Directory.GetCurrentDirectory() + @"/teacher/test.txt", textBox2.Text + "\r\n" + "\r\n"); File.AppendAllLines(Directory.GetCurrentDirectory() + @"/teacher/test.txt", results); File.AppendAllText(Directory.GetCurrentDirectory() + @"/teacher/test.txt", "------------------" + "\r\n"); File.Delete(outputFilename); File.Delete(bufferFile); }
XSample ConvertSample(int count, SSampleHeader sh, byte [] sample, Zone izone) { // Indices in sf2 are numbers of samples, not byte length. So double them. var xs = new XSample(); xs.Extension = ".wav"; xs.LoopStart = sh.StartLoop - sh.Start; xs.LoopEnd = sh.EndLoop - sh.Start; int sampleModes = izone.SampleModes(); xs.LoopMode = sampleModes == 0 ? InstrumentSampleLoopMode.Off : InstrumentSampleLoopMode.Forward; xs.Name = String.Format("Sample{0:D02} ({1})", count, sh.SampleName); xs.BaseNote = (sbyte)izone.OverridingRootKey(); // xs.Volume = (izone.VelocityRange () & 0xFF00 >> 8); // low range if (xs.BaseNote == 0) { xs.BaseNote = (sbyte)sh.OriginalPitch; } //Console.WriteLine ("{0} ({1}/{2}/{3}/{4}) {5}:{6}:{7}:{8}", xs.Name, sh.Start, sh.StartLoop, sh.EndLoop, sh.End, sh.SampleRate != 0xAC44 ? sh.SampleRate.ToString () : "", sh.OriginalPitch != 60 ? sh.OriginalPitch.ToString () : "", sh.PitchCorrection != 0 ? sh.PitchCorrection.ToString () : "", sampleModes); xs.FileName = xs.Name + ".wav"; var ms = new MemoryStream(); var wfw = new WaveFileWriter(ms, new WaveFormat((int)sh.SampleRate, 16, 1)); wfw.WriteData(sample, 2 * (int)sh.Start, 2 * (int)(sh.End - sh.Start)); wfw.Close(); xs.Buffer = ms.ToArray(); return(xs); }
private void recButton_callback(object sender, RoutedEventArgs e) { Button clickedButton = (Button)sender; var outF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SoundCount"); if (cycle == 0) { Directory.CreateDirectory(outF); } cycle++; if (cycle % 2 == 0) { waveSource.StopRecording(); waveFile.Close(); send_request(); clickedButton.Content = "Record"; } else { waveSource = new WaveIn(); waveSource.WaveFormat = new WaveFormat(); waveSource.DataAvailable += new EventHandler <WaveInEventArgs>(waveSource_DataAvailable); waveSource.RecordingStopped += new EventHandler <StoppedEventArgs>(waveSource_RecordingStopped); waveFile = new WaveFileWriter(@"rec.wav", waveSource.WaveFormat); waveSource.StartRecording(); clickedButton.Content = "Stop"; } }
/// <summary> /// 停止录音 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnRecordingStopped(object sender, StoppedEventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler <StoppedEventArgs>(OnRecordingStopped), sender, e); } else { if (waveIn != null) // 关闭录音对象 { waveIn.Dispose(); waveIn = null; } if (writer != null)//关闭文件流 { writer.Close(); writer = null; } if (e.Exception != null) { MessageBox.Show(String.Format("出现问题 {0}", e.Exception.Message)); } } }
static void Main(string[] args) { var option = new Dictionary <string, object>() { { "spd", 5 }, // 语速 { "vol", 5 }, // 音量 { "per", 0 } // 发音人,4:情感度丫丫童声 }; var text = "滴,滴,答,10,9,8,7,6,5,4,3,2,1"; WaveFileWriter writer = null; Stream output = null; foreach (var s in text.Split(',')) { var result = _ttsClient.Synthesis(s, option); if (!result.Success) { Console.WriteLine(result.ErrorMsg); } var ret = WriteSpeech(result.Data, 1, ref writer); if (ret != null) { output = ret; } } writer?.Flush(); output?.Seek(0, SeekOrigin.Begin); using (var fs = new FileStream("test.wav", FileMode.Create)) { output?.CopyTo(fs); fs.Close(); } writer?.Close(); Console.ReadLine(); }
static void Main() { Console.WriteLine("SIPSorcery Getting Started Demo"); Log = AddConsoleLogger(); _waveFile = new WaveFileWriter("output.mp3", _waveFormat); _sipTransport = new SIPTransport(); _sipTransport.AddSIPChannel(new SIPUDPChannel(new IPEndPoint(IPAddress.Any, SIP_LISTEN_PORT))); var userAgent = new SIPUserAgent(_sipTransport, null, true); userAgent.ServerCallCancelled += (uas) => Log.LogDebug("Incoming call cancelled by remote party."); userAgent.OnCallHungup += (dialog) => _waveFile?.Close(); userAgent.OnIncomingCall += async(ua, req) => { WindowsAudioEndPoint winAudioEP = new WindowsAudioEndPoint(new AudioEncoder()); VoIPMediaSession voipMediaSession = new VoIPMediaSession(winAudioEP.ToMediaEndPoints()); voipMediaSession.AcceptRtpFromAny = true; voipMediaSession.OnRtpPacketReceived += OnRtpPacketReceived; var uas = userAgent.AcceptCall(req); await userAgent.Answer(uas, voipMediaSession); }; Console.WriteLine("press any key to exit..."); Console.Read(); // Clean up. _sipTransport.Shutdown(); }
private void ReleaseResource() { if (_waveWriter != null) { _waveWriter.Close(); _waveWriter.Dispose(); _waveWriter = null; } if (_inputStream != null) { _inputStream.StopRecording(); _inputStream.DataAvailable -= InputStreamOnDataAvailable; _inputStream.Dispose(); _inputStream = null; } if (_waveOut != null) { _waveOut.Stop(); _waveOut.PlaybackStopped -= WaveOutOnPlaybackStopped; _waveOut.Dispose(); _waveOut = null; } if (_waveChanel != null) { _waveChanel.Dispose(); } if (_waveReader != null) { _waveReader.Dispose(); } }
static void Main(string[] args) { string s = ""; while (s != "q") { Thread thread = new Thread(delegate() { init(); }); thread.Start(); Console.ReadLine(); s_WaveIn.StopRecording(); writer.Close(); convert(); System.Threading.Thread.Sleep(500); Console.WriteLine(Send("test.flac")); s = Console.ReadLine(); } }
private void StopRecording() { this.Invoke(new Action(() => waveIn.Dispose())); waveIn = null; this.Invoke(new Action(() => writer.Close())); writer = null; }
private void HandleFile(string filename) { try { FileInfo file = new FileInfo(filename); string path = System.IO.Path.Combine(file.Directory.FullName, "output"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } AudioFileReader waveFileReader = new AudioFileReader(filename); int bytesPerMillisecond = waveFileReader.WaveFormat.AverageBytesPerSecond / 1000; int startPos = GetSilenceTime(waveFileReader, SilenceLocation.Start, config.Config.SilenceThreshold); int endPos2 = GetSilenceTime(waveFileReader, SilenceLocation.End, config.Config.SilenceThreshold); endPos2 -= endPos2 % 4; WaveFileWriter waveFileWriter = new WaveFileWriter(filename + ".temp.wav", waveFileReader.WaveFormat); TrimSound(waveFileReader, waveFileWriter, startPos, endPos2); byte[] temp = new byte[bytesPerMillisecond * 500]; waveFileWriter.Write(temp, 0, temp.Length); waveFileWriter.Close(); waveFileReader.Close(); WaveFileReader filereader = new WaveFileReader(filename + ".temp.wav"); WaveFormat format = new WaveFormat(8000, 16, 1); MediaFoundationResampler resample = new MediaFoundationResampler(filereader, format); WaveFileWriter.CreateWaveFile(System.IO.Path.Combine(path, file.Name.Replace(file.Extension, ".wav")), resample); resample.Dispose(); filereader.Close(); File.Delete(filename + ".temp.wav"); } catch (Exception) { } }
//Once we stop recording, clean up and store recording end date/time //INPUT: sender and StoppedEventArgs //OUTPUT: public void OnRecordingStopped(object sender, StoppedEventArgs e) { functionResult result = new functionResult(); try { //Clean up everytyhing used within the recording if (waveIn != null) { waveIn.Dispose(); waveIn = null; } if (writer != null) { writer.Close(); writer = null; } //Store the date/time the recording ended to be used for calculating the sample length recordingEnded = DateTime.Now; } catch (Exception ex) { result.Result = false; result.Message = "ERROR - OnDataAvailable - " + ex.ToString(); } }
//Окончание записи private void waveIn_RecordingStopped(object sender, EventArgs e) { if (InvokeRequired) { BeginInvoke(new EventHandler(waveIn_RecordingStopped), sender, e); } else { _www.Dispose(); _www = null; _writer.Close(); _writer.Dispose(); try { using (var reader = new AudioFileReader(_writer.Filename)) { using (var write = new LameMP3FileWriter(@"D:\MP3\gg.mp3", reader.WaveFormat, 128)) { reader.CopyTo(write); write.Flush(); } reader.Flush(); } } catch (Exception ev) { MessageBox.Show(ev.Message); } } }
/// <summary> /// Write the stored audio data as a WAVE file. /// </summary> public void SaveAsWav(string filePath) { // Make sure we have data. if (String.IsNullOrEmpty(_tempfile)) { _cbWritten = 0; return; } if (!File.Exists(_tempfile)) { _tempfile = null; _cbWritten = 0; return; } if (_cbWritten == 0) { File.Delete(_tempfile); _tempfile = null; return; } FileInfo fi = new FileInfo(_tempfile); Debug.Assert(fi.Length == _cbWritten); WaveFileWriter writer = new WaveFileWriter(filePath); writer.WriteFileHeader((int)fi.Length); WaveFormatChunk format = new WaveFormatChunk(); format.chunkId = "fmt "; format.chunkSize = 16; // size of the struct in bytes - 8 format.audioFormat = WAV_FMT_PCM; format.channelCount = _channelCount; format.sampleRate = _sampleRate; format.byteRate = (uint)(_sampleRate * _channelCount * _bitsPerFrame / 8); format.blockAlign = (ushort)(_channelCount * _bitsPerFrame / 8); format.bitsPerSample = _bitsPerFrame; writer.WriteFormatChunk(format); writer.WriteDataHeader((int)fi.Length); byte[] data = File.ReadAllBytes(_tempfile); Debug.Assert(data.Length == _cbWritten); writer.WriteData(data); writer.Close(); // Clean up the temporary data from the recording process. File.Delete(_tempfile); _tempfile = null; _cbWritten = 0; }