Я занимаюсь звуковым программированием с использованием naudio (используя учебник). Im моя программа (C# .net winForms) У меня есть кнопка записи и остановки. Код выглядит следующим образом:запись волны naudio liblary - плохое качество звука
NAudio.Wave.WaveIn sourceStream = null;
NAudio.Wave.WaveFileWriter waveWriter = null;
private void RecordButton_Click(object sender, EventArgs e)
{
int deviceNumber = 0;
sourceStream = new NAudio.Wave.WaveIn();
sourceStream.DeviceNumber = deviceNumber;
sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);
sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
waveWriter = new NAudio.Wave.WaveFileWriter("d:\\a.wav", sourceStream.WaveFormat);
sourceStream.StartRecording();
}
private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e)
{
if (waveWriter == null) return;
waveWriter.WriteData(e.Buffer, 0, e.BytesRecorded);
waveWriter.Flush();
}
private void StopButton_Click(object sender, EventArgs e)
{
waveWriter.Dispose();
waveWriter = null;
}
Это работает, но качество файла волна не хорошо - есть небольшие пробелы в звуке я записал. Я хочу, чтобы частота дискретизации 44100 Гц и формат образца 16 бит.
Может быть, из-за плохого микрофона? – banging
Нет, у меня есть только одно записывающее устройство (оно работает с другими коммерческими программами) – Juss
Каково качество звука, например, если вы используете приложение NAudioDemo, которое поставляется с источником NAudio? Кроме того, какую версию NAudio вы используете? –