Что работает - Сохранить файл
Что не является: - Аудио файл пуст (как длина, но нет слышимого звука, или звук пуст) Редактировать (для ясности): Вес файла не равен 0.
Уже реализовано решение с winmm.dll, но ищем что-то лучше, чем 16-битное качество.Уже используется оболочка NAudio для libmp3lame dll, поэтому использование NAudio является жизнеспособным вариантом.
public void Start()
{
if(this.isInitialized)
{
string outputFilePath = "...";
this.capture = new NAudio.Wave.WasapiLoopbackCapture();
this.writer = new NAudio.Wave.WaveFileWriter(outputFilePath, this.capture.WaveFormat);
this.capture.DataAvailable += (s, a) =>
{
this.writer.Write(a.Buffer, 0, a.BytesRecorded);
};
this.capture.RecordingStopped += (s, a) =>
{
this.writer.Dispose();
this.writer = null;
this.capture.Dispose();
};
this.capture.StartRecording();
}
}
public void StopAndSave()
{
if(this.isInitialized)
{
this.capture.StopRecording();
}
}
Ожидается: для записи звука в формате аудиофайла WAV
this.isInitialized проверка пути и соглашения об именовании файлов.Поскольку файл сохранить в ожидаемом месте не добавил код.Эта часть кода работает, как и ожидалось.
Примечание - при использовании NAudio 1.8.5 - целевой системой является Win10 x64 pro