Пауза при записи с микрофона в классе nAudio - C#
Формулировка задачи:
Всем хорошего настроения и доброго утра. Господа, помогите, пожалуйста. Можно ли в классе nAudio организовать паузу во время записи с дальнейшим ее продолжением? Не могу сообразить.
//начали запись private void StartRecording() { wi = new WaveIn(); wi.DeviceNumber = 0; wi.DataAvailable += waveIn_DataAvailable; wi.RecordingStopped += waveIn_RecordingStopped; wi.WaveFormat = new WaveFormat(44100, 2); writer = new WaveFileWriter("c:\\file1.wav", wi.WaveFormat); wi.StartRecording(); } //накопление данных private void waveIn_DataAvailable(object sender, WaveInEventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler<WaveInEventArgs>(waveIn_DataAvailable), sender, e); } else { writer.WriteData(e.Buffer, 0, e.BytesRecorded); } } //завершить запись private void StopRecording() { if (wi != null) { wi.StopRecording(); } } //после окончания записи private void waveIn_RecordingStopped(object sender, EventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler(waveIn_RecordingStopped), sender, e); } else { wi.Dispose(); wi = null; writer.Close(); writer = null; } }
Решение задачи: «Пауза при записи с микрофона в классе nAudio»
textual
Листинг программы
public static void Concatenate(string outputFile, IEnumerable<string> sourceFiles) { byte[] buffer = new byte[1024]; WaveFileWriter waveFileWriter = null; try { foreach (string sourceFile in sourceFiles) { using (WaveFileReader reader = new WaveFileReader(sourceFile)) { if (waveFileWriter == null) { // first time in create new Writer waveFileWriter = new WaveFileWriter(outputFile, reader.WaveFormat); } else { if (!reader.WaveFormat.Equals(waveFileWriter.WaveFormat)) { throw new InvalidOperationException("Can't concatenate WAV Files that don't share the same format"); } } int read; while ((read = reader.Read(buffer, 0, buffer.Length)) > 0) { waveFileWriter.WriteData(buffer, 0, read); } } } } finally { if (waveFileWriter != null) { waveFileWriter.Dispose(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д