Я запись звука через WasapiLoopbackCapture
и записать его в MP3-файл через NAudio.Lame
Lib:NAudio Loopback Запись Crackle Звук Ошибка
LAMEPreset quality = LAMEPreset.ABR_320;
audiostream = new WasapiLoopbackCapture();
audiostream.DataAvailable += stream_DataAvailable;
audiostream.RecordingStopped += stream_RecordingStopped;
mp3writer = new LameMP3FileWriter(Environment.GetEnvironmentVariable("USERPROFILE") + @"\Music\record_temp.mp3",
audiostream.WaveFormat, quality);
audiostream.StartRecording();
Когда пользователь нажимает ЗАПИСЬ кнопку остановки, за исключением I MP3-и остановить запись:
mp3writer.Flush();
audiostream.Dispose();
mp3writer.Dispose();
Все работает отлично, за исключением что выходной файл имеет некоторые тревожные CRACKLE шумы в нем. (См., Например, here). Я думаю, что это может быть так, что мой компьютер немного замедляет процесс сжатия и записи аудиоданных в реальном времени, поэтому некоторые из значений теряются, но это только моя догадка.
Редактировать: При записи на WAVE ошибки не отображаются.
В чем может быть проблема, и как я могу ее решить или обойти?
Как я понял в вопросе, трещины не появляются при записи на волну –
Итак, следующий шаг - это преобразовать WAV-файл и преобразовать его в автономный режим в MP3 с помощью LameMp3FileWriter. Посмотрите, куда входят трещины. –
Я предполагаю, что моя машина слишком медленная, чтобы делать кодировку в реальном времени. Я попробую это –