Я хочу записывать разговоры через Skype или аналогичные приложения (эти записи будут обработаны после сохранения). Я пытался добиться этого с помощью NAudio.
До сих пор мне удавалось записывать звук колонок с помощью WasapiLoopbackCapture и сохранять его в файл WAV, также мне удавалось записывать и сохранять звук микрофона с помощью WaveIn. Основная проблема заключается в том, что я не могу смешать эти 2 файла в один файл, как указано в следующей ссылке: https://github.com/naudio/NAudio/blob/master/Docs/MixTwoAudioFilesToWav.md
Функция, с которой я начинаю свою запись, выглядит следующим образом:
waveSourceSpeakers = new WasapiLoopbackCapture();
string outputFilePath = @"xxxx\xxx\xxx";
waveFileSpeakers = new WaveFileWriter(outputFilePath, waveSourceSpeakers.WaveFormat);
waveSourceSpeakers.DataAvailable += (s, a) =>
{
waveFileSpeakers.Write(a.Buffer, 0, a.BytesRecorded);
};
waveSourceSpeakers.RecordingStopped += (s, a) =>
{
waveFileSpeakers.Dispose();
waveFileSpeakers = null;
waveSourceSpeakers.Dispose();
};
waveSourceSpeakers.StartRecording();
waveSourceMic = new WaveIn();
waveSourceMic.WaveFormat = new WaveFormat(44100, 1);
waveSourceMic.DataAvailable += new EventHandler<WaveInEventArgs>(waveSource_DataAvailable);
waveSourceMic.RecordingStopped += new EventHandler<StoppedEventArgs>(waveSource_RecordingStopped);
waveFileMic = new WaveFileWriter(@"xxxx\xxx\xxx", waveSourceMic.WaveFormat);
waveSourceMic.StartRecording();
Функция, в которой я пытаюсь смешать 2 файла wav, выглядит следующим образом:
using (var reader1 = new AudioFileReader(@"xxx\xxx\file1.wav"))
using (var reader2 = new AudioFileReader(@"xxx\xxx\file2.wav"))
{
var mixer = new MixingSampleProvider(new[] { reader1, reader2 });
WaveFileWriter.CreateWaveFile16(@"xxxx\xxx\mixed.wav", mixer);
}
и я получаю это исключение: System.ArgumentException: «Все входы микшера должны иметь одинаковый WaveFormat» при попытке создать MixingSampleProvider.
Мне было интересно, правильно ли я пишу обе аудиозаписи? Кроме того, было бы здорово, если бы есть возможность записать обе аудиозаписи в один файл, но я не уверен, возможно ли это.