Как изменить битрейт записи WASAPI с помощью NAudio?

StackOverflow https://stackoverflow.com//questions/9615652

  •  09-12-2019
  •  | 
  •  

Вопрос

Я использую 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 но я не нашел подходящих свойств.

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top