Как изменить битрейт записи WASAPI с помощью NAudio? - PullRequest
1 голос
/ 08 марта 2012

Я использую NAudio для декодирования, воспроизведения и записи потока MP3. Для записи я использую WasapiLoopbackCapture для сохранения потока в файл wav:

if (waveIn == null) {
  waveIn = new WasapiLoopbackCapture();
  writer = new WaveFileWriter(outputFilename, waveIn.WaveFormat);
  waveIn.DataAvailable += new EventHandler<WaveInEventArgs>(waveIn_DataAvailable);
  waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped);
  waveIn.StartRecording();
}

Я сейчас ищу решение для сохранения файла wav не с 3072 кбит / с (что кажется стандартным для wasApi). Поток mp3 обеспечивает 128 кбит / с, так что это будет хорошим битрейтом для моего файла WAV. Я пытался изменить waveIn.WaveFormat, но не нашел нужных свойств.

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

К сожалению, WASAPI не позволяет вам изменять частоту дискретизации для петлевой записи. Вы должны самостоятельно выполнить преобразование частоты дискретизации. Для этого можно использовать классы DmoResampler или WaveFormatConversionStream в NAudio.

0 голосов
/ 23 апреля 2012

Я не знаком с абстракциями Наудио о васапи, но вы можете заставить окна выдавать вам аудио с определенным битрейтом / размером сэмплирования с помощью API wasapi C ++.Если это поможет

...