NAudio を使用してオーディオ録音を Wav ファイルに実装しようとしていますが、WasapiLoopbackCapture クラスによって設定されたデフォルトのビットレートをプログラムで変更することはできません。
オーディオ出力を MemoryStream に記録しています (以下のスニペットのrecordedStream)。ただし、WasapiLoobpackCapture によって設定されたデフォルトのビットレートは、私のニーズには合いません。
320KBPS のビット レートが必要で、記録したファイルを WaveFormatConversionStream クラスを使用してプログラムで変換しようとしましたが、うまくいきませんでした。
WaveFormat targetFormat = WaveFormat.CreateCustomFormat(waveIn.WaveFormat.Encoding,
waveIn.WaveFormat.SampleRate, //SampleRate
waveIn.WaveFormat.Channels, //Channels
320000, //Average Bytes per Second
waveIn.WaveFormat.BlockAlign, //Block Align
waveIn.WaveFormat.BitsPerSample); //Bits per Sample
using (WaveStream inputStream = new RawSourceWaveStream(recordedStream, waveIn.WaveFormat))
{
try
{
using (var converter = new WaveFormatConversionStream(targetFormat, inputStream))
{
// ...
}
}
catch (Exception)
{
throw;
}
recordedStream.Dispose();
}
「AcmNotPossible calling acmStreamOpen」変換例外が常に発生します。ご覧のとおり、ターゲットの波形でビットレートが低いことを除いて、録音された WAV ファイルとまったく同じ形式 (拡張エンコーディング、44100 など) を使用しています。
MemoryStream に含まれる Wav ファイルからビットレート変換を行う正しいコードは何ですか? 私の目標は、320KBPS のファイルを取得することです。